我知道我們可以通過httpclient發送的另一個httprequest獲取它,但它可能在會話https中存在一些問題。我可以攔截android webview中的響應數據嗎?我沒有找到這樣的apis。可能嗎 ?如何攔截android webview中的響應數據?
0
A
回答
0
似乎不可能...由於Android 4.0 webkit使用原生 chromium http模塊執行所有http/https請求。它不提供Java層攔截的鉤子或回調。
除非你想之前攔截請求它派出的WebKit的,那麼你可以參考WebViewClient.shouldOverrideUrlLoading()
。
0
我沒有答案如何獲取資源,但我知道,你可以從webview中獲取會話Cookie,並在自己的http-Requests或Android Download-Manager中使用它。
我有一個例子,什麼只需要在PHP的會話ID的Cookie的(這是用於在大多數PHP-喜歡邊登錄)
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);
}
如果您不喜歡HttpClient,因爲它不推薦使用,您可以在UrlConnection或其他Http客戶端中使用此會話Cookie,您只需添加Cookie標頭即可。
相關問題
- 1. 如何攔截WebView中POST請求的JSON響應?
- 2. Android WebView - 攔截URL加載
- 3. Android WebView - 攔截點擊
- 4. android webview:如何在重定向時攔截表單數據?
- 5. 角攔截檢查響應數據
- 6. 攔截WebView
- 7. 如何攔截WebView中的onPackPressed()?
- 8. 如何控制攔截器的響應
- 9. 的Android攔截的WebView要求正確
- 10. 擴展:如何攔截AJAX響應?
- 11. 如何攔截Promises響應或捕獲?
- 12. CXF:如何攔截SOAP響應
- 13. 如何攔截/鉤入Hubot響應
- 14. 如何攔截laravel HTTP錯誤響應
- 15. Android:攔截來自WebView的AJAX呼叫
- 16. 如何攔截WebView(android)中的url加載?
- 17. 用CXF攔截HTTP響應
- 18. Internet Explorer攔截XML響應
- 19. 攔截http請求/響應
- 20. 角2 HTTP響應攔截
- 21. 攔截HTTP響應頭
- 22. Angular 4.3 HttpClient:攔截響應
- 23. Angular2中的響應攔截器
- 24. android上的攔截攔截器
- 25. 如何攔截Android中的傾斜?
- 26. 如何攔截WCF中的請求/響應
- 27. 如何在攔截URL中發送特定的響應?
- 28. 攔截對golang進程的響應
- 29. 如何攔截來自WCF客戶端的原始SOAP請求/響應(數據)
- 30. Apache CXF攔截器:無法修改Out Out攔截器中的響應流