web-dev-qa-db-ja.com

リクエスト本文としてgetリクエストでJSONデータを渡す

こんにちは、URLに取得リクエストを送信する必要があります
http://onemoredemo.appspot.com/group?authToken=access_token&authMethod=oauth

以下に示すように、リクエスト本文にはjsonオブジェクトが含まれています。

{"goupid":"some_variable"
}

ここにJava getリクエストを送信するためのコードのセクションがあります:

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", "[email protected]");
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
それは私に正しい応答を与えていましたが、今では1時間を超えているため、アクセスの有効期限が切れています。 getリクエストでパラメーターとrequestbodyを送信するのは奇妙ですが、送信する必要があります。

Getリクエストのリクエストボディでjsonオブジェクトを送信する方法を手伝ってください。

10

しないでください。

これを読んでください: 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

16
DallaRosa

GETリクエストの本文は読み込まれません。

パラメータに追加してみましたか?

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

2
Blundell