Java Post request with form data

Home / Uncategorized / Java Post request with form data

Question:
I want to make a simple POST call in Java,
I am getting a 200 response code but, with the wrong response message,
I am told there is a different way to make a Post call when using a form data.

Following is my current Java code to make the post call –

private String makePostCall(){
try {
String url = "http://someIp/trusted";
HttpClient client = new DefaultHttpClient();
HttpPost post = new HttpPost(url);

// add header
List urlParameters = new ArrayList();
urlParameters.add(new BasicNameValuePair("username", "app_user"));

post.setEntity(new UrlEncodedFormEntity(urlParameters));

HttpResponse response = client.execute(post);
System.out.println("nSending ‘POST’ request to URL : " + url);
System.out.println("Post parameters : " + post.getEntity());
System.out.println("Response Code : " + response.getStatusLine().getStatusCode());

BufferedReader rd = new BufferedReader(new InputStreamReader(response.getEntity().getContent()));
StringBuffer result = new StringBuffer();
String line = "";
while ((line = rd.readLine()) != null) {
result.append(line);
}

System.out.println(result.toString());
return result.toString();

} catch (Exception e) {
e.printStackTrace();
return null;
}
}

Following is the Post call sample that is working through Postman app –

I am referring the following website –

How to send HTTP request GET/POST in Java

The expected outcome of the post call is supposed to be a Token ie. a String value, current response is -1.


Answer:
Give a try by setting content type multipart/form-data explicitly,
post.setHeader("Content-Type", "multipart/form-data");

In your code ,
post.setEntity(new UrlEncodedFormEntity(urlParameters));
post.setHeader("Content-Type", "multipart/form-data");
Read more

Leave a Reply

Your email address will not be published. Required fields are marked *