私はパラメータでGETリクエストを送信するためにこのコードをテストしています。パラメータの値がスペースを含む文字列の場合、このコードは失敗します。例:http://company.com/example.php?value=Jhon 123
。すでにJhon123
(withou任意のスペース)を送ってもうまく動作します。スペースを含むパラメータの値でGETリクエストを送信するにはどうすればよいですか?
これはどうしてですか?
private static void sendGet(String site, String params) throws Exception {
site += params;
URL obj = new URL(site);
try {
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
// optional default is GET
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
System.out.println("\nSending 'GET' request to URL : " + site);
System.out.println("Response Code : " + responseCode);
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
//print result
System.out.println(response.toString());
} catch (Exception ex) {
}
}
あなたがたqueryStringにエンコード・デコード方法の多くを使用することができ、でurlencodeは、ブラウザの標準に従うが、いくつかの回は失敗する可能性が最も簡単です、base64では、より良いアプローチですデータの規模が大きすぎない場合は – PSo
@ PSo、ありがとうございます。 URLEncoderはこの問題の解決策でした。 –