10

Hi i have to send a get request to an url
http://onemoredemo.appspot.com/group?authToken=access_token&authMethod=oauth

with request body contains json object as shown below.

{"goupid":"some_variable"
}

Here is a section of java code for sending get request:

URL url1=new URL("http://onemoredemo.appspot.com/group?authToken="+access_token+"&authMethod=oauth");
conn=(HttpURLConnection) url1.openConnection();
conn.addRequestProperty("Content-type", "application/x-www-form-urlencoded");

conn.setRequestMethod("GET");
conn.setDoOutput(true);
JSONObject jj=new JSONObject();
HttpGet get;
get.

jj.put("groupid", "testing@iritesh.com");
conn.addRequestProperty("Content-TYpe", "application/json");
conn.getOutputStream().write(jj.toString().getBytes());
conn.connect();
InputStream is=conn.getInputStream();

I am getting an error java.io.FileNotFoundException.

I sent a request from mozilla browser to url
http://onemoredemo.appspot.com/group?authToken=ya29.AHES6ZRDl-RqiA8W0PhybU_hMluHrHRjlJBvq06Vze0izJq0Ovjc088&authMethod=oauth
It was giving me correct response but now its more than one hour so acccesstoken expire. I know its weird to send parameter as well as requestbody in get request but i have to send it.

Please help in how to send a json object in request body in get request.

Keppil
  • 43,696
  • 7
  • 86
  • 111
Ritesh Mehandiratta
  • 6,595
  • 28
  • 114
  • 186

2 Answers2

15

Don't do it.

Read this: http://tech.groups.yahoo.com/group/rest-discuss/message/9962

"Yes. In other words, any HTTP request message is allowed to contain a message body, and thus must parse messages with that in mind. Server semantics for GET, however, are restricted such that a body, if any, has no semantic meaning to the request. The requirements on parsing are separate from the requirements on method semantics.

So, yes, you can send a body with GET, and no, it is never useful to do so.

This is part of the layered design of HTTP/1.1 that will become clear again once the spec is partitioned (work in progress)."

For other interesting discussions on this check this:

https://stackoverflow.com/a/978094/550967

https://stackoverflow.com/a/978173/550967

https://stackoverflow.com/a/978519/550967

Community
  • 1
  • 1
DallaRosa
  • 5,212
  • 2
  • 32
  • 51
2

The body of a GET request is not read.

Have you tried adding it to the params:

http://onemoredemo.appspot.com/group?authToken=access_token&authMethod=oauth&goupid=some_variable

Blundell
  • 69,653
  • 29
  • 191
  • 215