hc-httpclient-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From nonopo12345 <nonopo12...@163.com>
Subject Re:Re: Invalid redirect location: http://wapp.baidu.com/f?kw=???????
Date Mon, 30 Mar 2009 12:15:41 GMT
在2009-03-30,"Oleg Kalnichevski" <olegk@apache.org> 写道:
>On Sat, 2009-03-28 at 22:50 +0800, nonopo12345 wrote:
>> 
>> Hi,i'm using httpclient to connect a url. The problem is that i accept a error
redirect location ,for example http://wapp.baidu.com/f?kw=???????? , when to visit the url.
>>  
>> why there appeared some characters like "???????? "? The correct redirect laoction
should be http://wapp.baidu.com/f?kw=%B9%C2%D1%E3%B0%A7%C3%F9.
>
>This is most likely because the redirect location in the HTTP response
>is not correctly escaped. HTTP messages are expected to consist of
>US-ASCII characters only. Non-US-ASCII characters are supposed to be
>escaped.
>
>Oleg

how can httpclient escape Non-US-ASCII characters correctly ?
could you give me a example on visiting this url :http://gate.baidu.com/tc?m=2&w=0_5_%E5%93%80%E9%B8%A3&t=wap&ssid=0&from=0&bd_page_type=0&p=b43ed516d9c21fff57ee96685c52&order=2&vit=osres&uid=wap_1237916098_46&src=http%3A%2F%2Fpost%2Ebaidu%2Ecom%2Ff%3Fkw%3D%B9%C2%D1%E3%B0%A7%C3%F9

>>  
>> thd exception is:
>> org.apache.commons.httpclient.InvalidRedirectLocationException: Invalid redirect
location: http://wapp.baidu.com/f?kw=????????
>> at org.apache.commons.httpclient.HttpMethodDirector.processRedirectResponse(HttpMethodDirector.java:619)

>> at org.apache.commons.httpclient.HttpMethodDirector.executeMethod(HttpMethodDirector.java:179)

>> at org.apache.commons.httpclient.HttpClient.executeMethod(HttpClient.java:397) 
>> at org.apache.commons.httpclient.HttpClient.executeMethod(HttpClient.java:323) 
>> at cn.rjb.app.test.TestClickA.getSourceCode(TestClickA.java:28) 
>> at cn.rjb.app.test.TestClickA.main(TestClickA.java:15) 
>> Caused by: org.apache.commons.httpclient.URIException: Invalid query 
>> at org.apache.commons.httpclient.URI.parseUriReference(URI.java:2049) 
>> at org.apache.commons.httpclient.URI. <init>(URI.java:147) 
>> at org.apache.commons.httpclient.HttpMethodDirector.processRedirectResponse(HttpMethodDirector.java:601)

>> ... 5 more 
>> 
>>  
>> the code i use is :
>>  
>> public static void main(String args[]) {
>>   
>>   // the url will be to visit
>>   String requestURL = "http://gate.baidu.com/tc?m=2&w=0_5_%E5%93%80%E9%B8%A3&t=wap&ssid=0&from=0&bd_page_type=0&p=b43ed516d9c21fff57ee96685c52&order=2&vit=osres&uid=wap_1237916098_46&src=http%3A%2F%2Fpost%2Ebaidu%2Ecom%2Ff%3Fkw%3D%B9%C2%D1%E3%B0%A7%C3%F9";
>>   
>>   // use httpclient to get the response of the url
>>   String response = null ;
>>   HttpClient httpClient = new HttpClient();
>>   GetMethod method = new GetMethod(requestURL);
>>  
>>   try {
>>    httpClient.executeMethod(method);
>>    response = new String(method.getResponseBody(), "utf-8");
>>   } catch (Exception e) {
>>    e.printStackTrace();
>>   } finally {
>>    method.releaseConnection();
>>   }
>>   
>>   // print the response ,if ok
>>   System.out.println(response);
>>  }
>>  
>> 
>
>
>---------------------------------------------------------------------
>To unsubscribe, e-mail: httpclient-users-unsubscribe@hc.apache.org
>For additional commands, e-mail: httpclient-users-help@hc.apache.org
>

Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message