2013-08-21 35 views
0

我想在android webview上检测redirected页面。经过很多努力,我发现重定向页面的状态代码在300到400之间。我还检查了重定向页面“en.m.wikipedia.com/wiki/Automobile”的状态代码,并获得了期望的结果。 但我试图复制samething Android中webview.I没有得到30X,但得到200期望300到400之间的状态代码,但得到200 android httpclient

这里是我的代码:

public class MyActivity extends Activity { 
    private WebView webView; 
    private myWebChromeClient mWebChromeClient; 
    private myWebViewClient mWebViewClient; 

    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.main); 

     webView = (WebView) findViewById(R.id.webView); 

     mWebViewClient = new myWebViewClient(); 
     webView.setWebViewClient(mWebViewClient); 

     // mWebChromeClient = new myWebChromeClient(); 
     // webView.setWebChromeClient(mWebChromeClient); 
     webView.getSettings().setJavaScriptEnabled(true); 

     String url ="http://en.wikipedia.com/wiki/Automobile"; 
     webView.loadUrl(url); 


} 
    class myWebViewClient extends WebViewClient { 
    public void onPageStarted(WebView view, String url, Bitmap favicon) { 
     super.onPageStarted(view, url, favicon); 
     Log.v("url loaded "," "+url); 

     try{ 
      HttpClient httpClient; 
      HttpParams params = new BasicHttpParams(); 
      params.setParameter(CoreProtocolPNames.PROTOCOL_VERSION, HttpVersion.HTTP_1_1); 
      httpClient = new DefaultHttpClient(params); 
      HttpPost post = new HttpPost(url); 
      HttpResponse response = httpClient.execute(post); 
      Log.w("Response ","Status line : "+ response.getStatusLine().toString()); 

     }catch(Exception e){ 

     } 
    } 
    @Override 
    public boolean shouldOverrideUrlLoading(WebView view, String url) { 

     return false; 
    } 
} 
} 

这里是我的输出:

V/ url loaded: http://en.wikipedia.com/wiki/Automobile 
W/Response: Status line : HTTP/1.0 200 OK 
url loaded: http://en.wikipedia.org/wiki/Automobile 
Response: Status line : HTTP/1.0 200 OK 
url loaded: http://en.m.wikipedia.org/wiki/Automobile 
Response: Status line : HTTP/1.1 200 OK 

提前致谢。

回答

2

阿帕奇DefaultHttpClient自动跟随重定向unless configured otherwise

ClientPNames.HANDLE_REDIRECTS = 'http.protocol.handle-重定向':定义是否重定向应当自动处理。该参数需要java.lang.Boolean类型的值。如果这个参数没有设置,HttpClient会自动处理重定向。

+0

实现此,我得到的响应:V/URL加载:http://en.wikipedia.com/wiki/Automobile W /响应:状态行:HTTP/1.0 301已移至永久 URL加载:HTTP ://en.wikipedia.org/wiki/Automobile 响应:状态行:HTTP/1.0 200 OK 加载的URL:http://en.m.wikipedia.org/wiki/Automobile 响应:状态行:HTTP/1.1 200 OK(仍未完成重定向)。 – vijay

+0

http://en.m.wikipedia.org/wiki/Automobile返回200,不重定向。 – msh

+0

我打开en.wikipedia.com/wiki/Automobile.And它被重定向到en.m.wikipedia.org/wiki/Automobile.Probably在服务器端,他们使用useragent.I需要知道所有重定向。如何我得到所有这些? – vijay

相关问题