All pastes #1937298 Raw Edit

signpost POST example URLConnect

public java v1 · immutable
#1937298 ·published 2010-09-10 14:31 UTC
rendered paste body
    private class PostEnabledHttpURLConnectionRequestAdapter extends HttpURLConnectionRequestAdapter {        private String body;        public PostEnabledHttpURLConnectionRequestAdapter(HttpURLConnection request, String body) {            super( request );            this.body = body;        }        public InputStream getMessagePayload() throws IOException {            return new ByteArrayInputStream(body.getBytes("UTF-8"));        }    }        private class PostEnabledOAuthConsumer extends DefaultOAuthConsumer {        public PostEnabledOAuthConsumer( String consumerKey, String consumerSecret ) {            super( consumerKey, consumerSecret );        }        protected HttpRequest wrap(Object request, String body) {            if (!(request instanceof HttpURLConnection)) {                throw new IllegalArgumentException(                        "The default consumer expects requests of type java.net.HttpURLConnection");            }            return new PostEnabledHttpURLConnectionRequestAdapter((HttpURLConnection) request, body);        }        public HttpRequest sign(Object request, String body) throws OAuthMessageSignerException,            OAuthExpectationFailedException, OAuthCommunicationException {            return sign(wrap(request, body));        }    }        ...     PostEnabledOAuthConsumer consumer = new PostEnabledOAuthConsumer(key, secret);    ...     URL url = new URL("http://api.twitter.com/1/statuses/update.xml");    HttpURLConnection request = (HttpURLConnection) url.openConnection();    request.setConnectTimeout(10000);    request.setReadTimeout(30000);    request.setRequestMethod("POST");    request.setRequestProperty("Content-Type", "application/x-www-form-urlencoded; charset=UTF-8");    String body = "status=" + URLEncoder.encode("API test", "UTF-8");    consumer.sign(request, body);    request.setDoOutput(true);    request.getOutputStream().write(body.getBytes("UTF-8"));    request.getOutputStream().close();    request.connect();    ...