Error when simulating cURL using a REST call in java Code Answer

Hello Developer, Hope you guys are doing great. Today at Tutorial Guruji Official website, we are sharing the answer of Error when simulating cURL using a REST call in java without wasting too much if your time.

The question is published on by Tutorial Guruji team.

Currently I am able to run the following command in curl which returns the json response as expected. Note that the input JSON is sent by name “json” in the request as a form parameter. The API will accept only JSON requests and will only support POST method calls.

Request

curl --data 'json={ "startdate": "2012-10-10", "enddate":"2012-10-11" }' http://xxxxx.xxxx.xxx/xxxx/xxxx/xxxx/xxxx

Response

{"startdate":"2012-10-10","status":"true","Api Name":"xxxx","output":{"ROW":"49","EU":"54","NA":"33"},"enddate":"2012-10-11"}

I am simulating the above cURL command using a REST call in java.

The code is shown below

String urlString = "http://xxxxx.xxxx.xxx/xxxx/xxxx/xxxx/xxxx";
URL myUrl = new URL(urlString);
URLConnection urlConn = myUrl.openConnection();

String myData = "json={ "startdate": "2012-10-10", "enddate":"2012-10-11" }" ;
urlConn.setRequestProperty("data", myData);

urlConn.connect();

BufferedReader in = new BufferedReader(newInputStreamReader(urlConn.getInputStream()));

String inputLine;

while ((inputLine = in.readLine()) != null) {
    System.out.println(inputLine);
}
in.close();

But the above code returns the following error.

The stack trace is shown below.

Exception in thread "main" java.io.IOException: Server returned HTTP response code: 405 for URL: http://xxxxx.xxxx.xxx/xxxx/xxxx/xxxx/xxxx
    at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1615)
    at dashboard.access.data.RAccess.main(RAccess.java:39)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:601)
    at com.intellij.rt.execution.application.AppMain.main(AppMain.java:134)

Answer

Maybe:

urlConn.setRequestMethod("POST");

after openConnection() will fix it? You said your api only allow post requests. And you get a 405 method not allowed.

If not, you can try this link, check out the sendPost() method in first Java HttpURLConnection example chapter: http://www.mkyong.com/java/how-to-send-http-request-getpost-in-java/

We are here to answer your question about Error when simulating cURL using a REST call in java - If you find the proper solution, please don't forgot to share this with your team members.

Related Posts

Tutorial Guruji