リモートサーバーからの応答を取得しようとしています。これが私のコードです:
private static String baseRequestUrl = "http://www.pappico.ru/promo.php?action=";
@SuppressWarnings("deprecation")
public String executeRequest(String url) {
String res = "";
HttpClient httpClient = new DefaultHttpClient();
HttpResponse response;
try {
//url = URLEncoder.encode(url, "UTF-8");
HttpGet httpGet = new HttpGet(url);
response = httpClient.execute(httpGet);
Log.d("MAPOFRUSSIA", response.getStatusLine().toString());
HttpEntity entity = response.getEntity();
if (entity != null) {
InputStream inStream = entity.getContent();
res = streamToString(inStream);
inStream.close();
}
} catch (Exception e) {
e.printStackTrace();
}
return res;
}
public String registerUser(int userId, String userName) {
String res = "";
String request = baseRequestUrl + "RegisterUser¶ms={\"userId\":" +
userId + ",\"userName\":\"" + userName + "\"}";
res = executeRequest(request);
return res;
}
そして、次の例外が行に表示されますHttpGet httpGet = new HttpGet(url)
:
java.lang.IllegalArgumentException: インデックス 59 のクエリに無効な文字があります: http://www.pappico.ru/promo.php?action=RegisterUser¶ms= {"userId":1,"userName":"Юрий Клинских"}
「{」文字の何が問題になっていますか? 私はすでにこの例外に関するいくつかの投稿を読み、解決策を見つけましたが、この解決策は別の例外を引き起こします:行のコメントを外すと、そのような例外url = URLEncoder.encode(url, "UTF-8");
のある行でクラッシュしresponse = httpClient.execute(httpGet);
ます:
java.lang.IllegalStateException: ターゲット ホストを null にすることも、パラメーターに設定することもできません。スキーム=ヌル、ホスト=ヌル、パス= http://www.pappico.ru/promo.php?action=RegisterUser¶ms= {"userId":1,"userName":"Юрий+Клинских"}
それを機能させるために何をすべきかわかりません。どんな助けでも大歓迎です:)