如何在android webview中截取响应数据?

如何在android webview中截取响应数据?,android,webview,Android,Webview,我知道我们可以通过httpclient发送的另一个httprequest获得它,但它可能在会话https方面存在一些问题。我可以在android webview中截取响应数据吗。我找不到这样的API。可能吗?似乎不可能。。。由于Android 4.0 webkit使用本机chromium http模块来执行所有http/https请求。它不提供任何钩子或回调供Java层拦截 除非您想在webkit发出请求之前拦截请求,否则您可以参考WebViewClient.shouldOverrideUrlL

我知道我们可以通过httpclient发送的另一个httprequest获得它,但它可能在会话https方面存在一些问题。我可以在android webview中截取响应数据吗。我找不到这样的API。可能吗?

似乎不可能。。。由于Android 4.0 webkit使用本机chromium http模块来执行所有http/https请求。它不提供任何钩子或回调供Java层拦截


除非您想在webkit发出请求之前拦截请求,否则您可以参考
WebViewClient.shouldOverrideUrlLoading()

我不知道如何获取资源,但我知道,您可以从webview获取会话Cookie,并在自己的http请求或Android下载管理器中使用它

我有一个例子,它只从Cookie中获取php sessionID(这用于在最喜欢php的方面进行登录)

如果您不喜欢Httpclient,因为它已弃用,您可以在UrlConnection或其他Http客户端中使用此会话cookie,您只需添加cookie头

 static final private String   phpSessionName             = "PHPSESSID";


/**
 * Loads PHP Session ID from Cookie
 * 
 * @date    22.09.2015
 * @version 1.0
 * @param   url         
 * @return  PHP SessionID or NULL if cookie contains no SessionID
 */
protected String getPHPSessionID(String url)
{
  String id = null;


  CookieManager cookieManager = CookieManager.getInstance();
  String cookie               = cookieManager.getCookie(url);
  if(cookie != null)
  {
    String[] cookie_parts = cookie.split(";");
    for(int t=0;t < cookie_parts.length;t++)
    { 
        String[] cookieContent = cookie_parts[t].split("=");
        if(phpSessionName.equals(cookieContent[0]))
        {
         id = cookieContent[1];           
          break;
        }
    }
  } 
  else Log.w(TAG, "getPHPSessionID: no cookie found");    

  return id;
}
 String phpSession   = getPHPSessionID("http://yourdomain.com");    
 if(phpSession != null) {
   DefaultHttpClient client = new DefaultHttpClient();
   HttpGet  request = new HttpGet("http://yourdomain.com/stuff-to-load");
   response   = client.execute( request );

   // Your code to load data or headers or response
   request.addHeader("Cookie",phpSessionName+"="+phpSession);
 }