Код отлично работает, если запрос не содержит символов utf-8. Как только есть один символ utf-8, ETools дает результаты, которых я не ожидаю. Например, для "trees"
я получаю правильный результат, а для "bäume"
(немецкое слово для деревьев) я получаю странные результаты. Похоже, что ETools получает запрос как "b%C3%A4ume"
и ищет именно этот запрос именно с этими символами, а не с "bäume"
. Я думаю, что проблема может быть решена, если я задам некоторые параметры заголовка, но я не знаю, какие параметры там возможны.
String query = "some+query+with+utf8+chars";
HttpClient client = new DefaultHttpClient();
HttpPost request = new HttpPost();
List<NameValuePair> parameters = new ArrayList<NameValuePair>();
parameters.add(new BasicNameValuePair("query", query));
parameters.add(new BasicNameValuePair("country", "web"));
parameters.add(new BasicNameValuePair("language", "all"));
parameters.add(new BasicNameValuePair("dataSourceResults", String.valueOf(40)));
parameters.add(new BasicNameValuePair("pageResults", String.valueOf(40)));
request.setEntity(new UrlEncodedFormEntity(parameters, "UTF-8"));
request.setHeader("Content-Type", "application/x-www-form-urlencoded");
request.setURI("http://www.etools.ch/searchAdvancedSubmit.do?page=2");
MyResponse myResponse = client.execute(request, myResponseHandler);
request.reset();
client.getConnectionManager().shutdown();