HTTP POST using JSON in Java
http, java, json, post
Solution
Here is what you need to do:
- Get the Apache `HttpClient`, this would enable you to make the required request
- Create an `HttpPost` request with it and add the header `application/x-www-form-urlencoded`
- Create a `StringEntity` that you will pass JSON to it
- Execute the call
The code roughly looks like (you will still need to debug it and make it work):
// @Deprecated HttpClient httpClient = new DefaultHttpClient();
HttpClient httpClient = HttpClientBuilder.create().build();
try {
HttpPost request = new HttpPost("http://yoururl");
StringEntity params = new StringEntity("details={\"name\":\"xyz\",\"age\":\"20\"} ");
request.addHeader("content-type", "application/x-www-form-urlencoded");
request.setEntity(params);
HttpResponse response = httpClient.execute(request);
} catch (Exception ex) {
} finally {
// @Deprecated httpClient.getConnectionManager().shutdown();
}
Problem
I would like to make a simple HTTP POST using JSON in Java. Let's say the URL is `www.site.com` and it takes in the value `{"name":"myname","age":"20"}` labeled as `'details'` for example. How would I go about creating the syntax for the POST? I also can't seem to find a POST method in the JSON Javadocs.