リモートサーバーから応答を取得しようとしています。ここに私のコードです:HttpGetのAndroid java.lang.IllegalArgumentException
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");
をuncommet場合には、そのような例外を除いてラインresponse = httpClient.execute(httpGet);
でcraches:
java.lang.IllegalStateException:ターゲットホストはいけませんnullにするか、パラメータで設定します。スキーム= nullを、ホスト= nullで、パス= http://www.pappico.ru/promo.php?action=RegisterUser¶ms= { "はuserId":1、 "userNameに": "Юрий+Клинских"}
私はそれを動作させるために何をすべきか分かりません。任意の助けいただければ幸い:)
はそうとライン応答= httpClient.execute(HTTPGET)で例外android.os.NetworkOnMainThreadExceptionを取得します。 ' – konunger
それは私の間違いだ - 私はUIスレッドからネットワークで作業しているようだ)) – konunger