10

嗨,我必须向 url
http://onemoredemo.appspot.com/group?authToken=access_token&authMethod=oauth发送一个获取请求

请求正文包含 json 对象,如下所示。

{"goupid":"some_variable"
}

下面是一段用于发送 get 请求的 java 代码:

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();

我收到一个错误java.io.FileNotFoundException

我从 mozilla 浏览器向 url
http://onemoredemo.appspot.com/group?authToken=ya29.AHES6ZRDl-RqiA8W0PhybU_hMluHrHRjlJBvq06Vze0izJq0Ovjc088&authMethod=oauth
发送了一个请求, 它给了我正确的响应,但现在它超过一个小时,所以 acccesstoken 过期了。我知道在 get 请求中发送参数和 requestbody 很奇怪,但我必须发送它。

请帮助如何在获取请求的请求正文中发送 json 对象。

4

2 回答 2

14

不要这样做。

阅读: http ://tech.groups.yahoo.com/group/rest-discuss/message/9962

“是的。换句话说,任何 HTTP 请求消息都允许包含消息正文,因此必须在解析消息时考虑到这一点。但是,GET 的服务器语义受到限制,因此正文(如果有的话)没有语义意义解析的要求与方法语义的要求是分开的。

所以,是的,您可以使用 GET 发送正文,但不,这样做从来没有用处。

这是 HTTP/1.1 分层设计的一部分,一旦规范被划分(正在进行中),它​​将再次变得清晰。”

有关此检查的其他有趣讨论:

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

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

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

于 2012-07-20T08:55:16.100 回答
2

不读取 GET 请求的正文。

您是否尝试将其添加到参数中:

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

于 2012-07-20T08:57:42.490 回答