1
如果查詢不包含任何utf-8字符,代碼將正常工作。只要有一個utf-8字符,那麼ETools會提供我不期望的結果。例如對於"trees"
我得到正確的結果和"bäume"
(德語單詞爲樹)我得到奇怪的結果。它看起來像ETools收到的查詢爲"b%C3%A4ume"
,並確切查找這些查詢確切的那些字符,而不是"bäume"
。我認爲如果我設置一些標題參數,問題可能會解決,但我不知道哪些參數可能存在。Apache HttpClient - 在查詢中以utf-8字符向ETools.ch發送請求
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();