私のクエリがいくつかのデータを保持している Web サービスに接続しようとしています。悪いことに、このデータには utf-8 文字が含まれているため、問題が発生します。
通常の文字列で単に HttpGet を呼び出すと、「不正な文字」例外が発生します。それで、私はググって、いくつかのutf-8マジックを試しました。
HttpClient httpclient = new DefaultHttpClient();
httpclient.getParams().setParameter("http.protocol.content-charset", "UTF-8");
String utfurl = URLEncoder.encode(url, "utf-8");
HttpGet httpGet = new HttpGet(utfurl);
HttpResponse response = httpclient.execute(httpGet);
content = response.getEntity().getContent();
} catch (Exception e) {
Log.d(TAG, "getInputStream: " +e.getMessage());
これで、不正な文字は取得されなくなりましたが、代わりに「ターゲット ホストが null になってはならない、またはパラメーターで設定されてはならない」というメッセージが表示されるため、utfurl が完全に台無しになっているようです。おそらく、めちゃくちゃな文字列の「http://」の部分を認識していないためです。何かアドバイス?
よろしく