Основная идея заключается в том, что вы хотите кодировать только строку запроса, а не имя хоста или протокол.

аюсь подключиться к веб-сервису, где мои запросы хранят некоторые данные. Плохо то, что эти данные содержат символы 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());

Теперь я не получу недопустимый символ, но, похоже, он полностью испортит utfurl, поскольку вместо этого я получаю «целевой хост не должен быть нулевым или заданным в параметрах». Возможно, потому что он не распознает часть "http: //" в испорченной строке. Любой совет?

С уважением

Ответы на вопрос(1)

Ваш ответ на вопрос