ja przechwytując żądania z WebView użyciu shouldInterceptRequestAndroid: WebView shouldInterceptRequest nie dodając RequestProperties w WebView
poniżej jest mój kod powrocie mój 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;
}
nazywam tę metodę w moim CustomWebViewClient
class CustomWebViewClient extends WebViewClient {
@TargetApi(Build.VERSION_CODES.LOLLIPOP)
@Override
public WebResourceResponse shouldInterceptRequest(WebView view, WebResourceRequest request) {
return handleRequestViaUrlOnly(request);
}
}
Jednak, gdy sprawdzam nagłówki żądań z zdalnego debugera WebView w chrome: // inspect/# pomysłowość.
Dodatkowa prośba o przyznanie, którą dodałem, nie jest obecna.
conn.setRequestProperty("Sample-Header", "hello");
Nagłówek próbki nie występuje w nagłówkach zgłoszeń w WebView.
Czy brakuje mi czegoś? Docenię każdą pomoc.
Dose idzie w IO bloku wyjątków? –
nie, ale wywołanie tego nowego adresu URL (url) .openConnection() wymaga przechwycenia wyjątku IOException. – Aaron
Po prostu zaksięguj pełny kod wywoływania tej metody? –