Мне нужно использовать «ö», «ä». «Ü» в моей программе, но Java / Android не позволит - PullRequest
3 голосов
/ 29 апреля 2010

Мне нужна моя программа для отправки запроса на сервер. Проблема в том, что сервер распознает только ös, äs и üs, но JAVA и / или Android их не знают. `Как я могу отправить запрос со строкой типа" Hermann-Löns "без JAVA / Android," меняющей "ö .... Да, и кстати," oe "тоже не распознается сервером, уже пробовал это. ..

Спасибо за помощь!

@ BalausC:

Я изменил ваш код на:

Я не уверен, что именно так вы ссылаетесь на правильные поля ...

String url = "http://busspur02.aseag.de/bs.exe?SID=473A2&ScreenX=1440&ScreenY=900&CMD=CR&DatumT=30&DatumM=4&DatumJ=2010&AbfAnk=Abf&ZeitH=10&ZeitM=45&Intervall=60&Loeschen=%28N%29eue+Suche";
        String charset = "CP1252";
        List<NameValuePair> params = new ArrayList<NameValuePair>();
        params.add(new BasicNameValuePair("HTO", start_from));
        params.add(new BasicNameValuePair("HT1", destination));
        UrlEncodedFormEntity query = new UrlEncodedFormEntity(params, charset);

            HttpPost post = new HttpPost(url);
            post.setEntity(query);
            InputStream response = new DefaultHttpClient().execute(post).getContent();
            // Now do your thing with the facebook response.

Я не могу скомпилировать, потому что я получаю сообщение об ошибке:

Метод getContent () не определен для типа HttpResponse

Если я удаляю getContent (), это говорит:

Type mismatch: cannot convert from HttpResponse to InputStream

Еще одна вещь: я использую htmlparser (http://htmlparser.sourceforge.net/) для синтаксического анализа результирующего веб-сайта. Как получить доступ к результирующему html-сайту для его анализа? Потому что в противном случае мне пришлось бы переписать почти весь мой код, чтобы получить результаты ..

1 Ответ

4 голосов
/ 29 апреля 2010

Кстати, вам нужно использовать java.net.URLEncoder с соответствующей кодировкой символов для кодирования специальных символов в параметрах запроса.

String param = URLEncoder.encode("Hermann-Löns", "CP1252");

Убедитесь, что вы указали заголовок Accept-Charset: CP1252 в HTTP-запросе. Для более полного примера кода, как запустить HTTP-запрос с правильной кодировкой, отметьте этот ответ , который я опубликовал час назад. Он также охватывает пример HttpClient, который также включен в Android.

...