我正在使用shouldInterceptRequest拦截来自Webview的请求。
以下是我返回WebResourceResponse的代码。
我在我的CustomWebViewClient中调用了这个方法。
然而,当我在chrome://inspect/#devices中使用WebView远程调试器检查请求标头时,我添加的额外请求属性不可见。
以下是我返回WebResourceResponse的代码。
@TargetApi(Build.VERSION_CODES.LOLLIPOP)
private static WebResourceResponse handleRequestViaUrlOnly(WebResourceRequest webResourceRequest){
String url = webResourceRequest.getUrl().toString();
Log.i("intercepting req....!!!", url);
String ext = MimeTypeMap.getFileExtensionFromUrl(url);
String mime = MimeTypeMap.getSingleton().getMimeTypeFromExtension(ext);
try {
HttpURLConnection conn = (HttpURLConnection) new URL(url).openConnection();
conn.setRequestProperty("Sample-Header", "hello");
conn.setDoOutput(true);
conn.setDoInput(true);
conn.setUseCaches(false);
return new WebResourceResponse(mime, "UTF-8", conn.getInputStream());
} catch (IOException e) {
e.printStackTrace();
}
return null;
}
我在我的CustomWebViewClient中调用了这个方法。
class CustomWebViewClient extends WebViewClient {
@TargetApi(Build.VERSION_CODES.LOLLIPOP)
@Override
public WebResourceResponse shouldInterceptRequest(WebView view, WebResourceRequest request) {
return handleRequestViaUrlOnly(request);
}
}
然而,当我在chrome://inspect/#devices中使用WebView远程调试器检查请求标头时,我添加的额外请求属性不可见。
conn.setRequestProperty("Sample-Header", "hello");
< p >在WebView的请求头中没有Sample-Header。
< p >我是否遗漏了什么?感激任何帮助。