0

このコードは正常に動作します

HttpClient client = new DefaultHttpClient();
HttpGet request = new HttpGet("http://localhost:8090/Servlet/ServletFirst?to=1234&from=567&text=testtest");

パラメータ値の間にスペースを使用する場合。例外をスローします

HttpClient client = new DefaultHttpClient();
HttpGet request = new HttpGet("http://localhost:8090/Servlet/ServletFirst?to=1234&from=567&textParam=test test");

テストテスト間のスペースはエラーをスローします。解決方法は?

4

4 に答える 4

2

URL 内のパラメーターを URL エンコードする必要があります。%20スペースの代わりに使用します。

HttpGet request = new HttpGet("http://localhost:8090/Servlet/ServletFirst?to=1234&from=567&textParam=test%20test");

Java には、URL エンコーディングを行うクラスがありますURLEncoder

String param = "test test";
String enc = URLEncoder.encode(param, "UTF-8");

String url = "http://...&textParam=" + enc;
于 2013-10-03T07:17:33.450 に答える
1

使用する

URLEncoder.encode("test test","UTF-8")

コードを次のように変更します

HttpGet request = new HttpGet("http://localhost:8090/Servlet/ServletFirst?to=1234&from=567&textParam="+URLEncoder.encode("test test","UTF-8"));

注: URL 全体を使用しないでくださいEncode

URLEncoder.encode("http://...test"); // its Wrong because it will also encode the // in http://
于 2013-10-03T07:17:54.340 に答える