I have this VO

public class myVO { private final String latitude; private final String longtitude; private final String meterRadius; public myVO(String latitude, String longtitude, String meterRadius) { this.latitude = latitude; this.longtitude = longtitude; this.meterRadius = meterRadius; } public String getLatitude() { return latitude; } public String getLongtitude() { return longtitude; } public String getMeterRadius() { return meterRadius; } } 

And rest service

@Path("/listrs") @Produces(MediaType.APPLICATION_JSON) public class MyResource { Logger logger = LoggerFactory.getLogger(MyResource.class); private final AtomicLong counter; public MyResource(String template, String defaultName) { //this.template = template; //this.defaultName = defaultName; this.counter = new AtomicLong(); } @GET @Timed public List<ResultVO> getMyList() { List<ResultVO> list = new ArrayList<>(); list.add(new ResultVO(counter.incrementAndGet(), "dummy text")); list.add(new ResultVO(counter.incrementAndGet(), "dummy text1")); return list; } @POST @Timed @Consumes(MediaType.APPLICATION_JSON) public List<ResultVO> getListByLoc(myVO loc) { logger.debug(loc.toString()); return getMyList(); } } 

Testing it using

curl -i -X POST -d '{"latitude": "2.3433", "longtitude": "23.2233", "meterRadius":"5"}' 

Result I'm getting:

curl: (6) Could not resolve host: 2.3433, curl: (6) Could not resolve host: longtitude curl: (6) Could not resolve host: 23.2233, curl: (3) [globbing] unmatched close brace/bracket at pos 14 HTTP/1.1 415 Unsupported Media Type Date: Sun, 23 Mar 2014 21:23:16 GMT Content-Type: text/html;charset=ISO-8859-1 Cache-Control: must-revalidate,no-cache,no-store Content-Length: 1350 <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/> <title>Error 415 Unsupported Media Type</title> </head> <body><h2>HTTP ERROR 415</h2> <p>Problem accessing /listrs. Reason: <pre> Unsupported Media Type</pre></p><br/> <br/> <br/> <br/> <br/> <br/> <br/> <br/> <br/> <br/> <br/> <br/> <br/> <br/> <br/> <br/> <br/> <br/> <br/> <br/> </body> </html> 

Any idea what I am doing wrong? Im using dropwizard but I dont think it is relevant.

1

1 Answer

Add this with curl:

-H "Content-Type: application/json" 

Another thing, you are possibly running this from windows pc. So wrap your json with double quote(") instead of single(')

-d "{\"latitude\": \"2.3433\", \"longtitude\": \"23.2233\", \"meterRadius\":\"5\"}" 

Notice, I have escaped the inner quotes with \

Finally, use -v param with your curl. It will help you to see what curl is sending to the server.

1

Your Answer

Sign up or log in

Sign up using Google Sign up using Facebook Sign up using Email and Password

Post as a guest

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy