android.webkit.WebResourceRequest#getRequestHeaders ( )源码实例Demo

下面列出了android.webkit.WebResourceRequest#getRequestHeaders ( ) 实例代码,或者点击链接到github查看源代码,也可以在右侧发表评论。

源代码1 项目: FastWebView   文件: WebViewCacheImpl.java
@Override
public WebResourceResponse getResource(WebResourceRequest webResourceRequest, int cacheMode, String userAgent) {
    if (mFastCacheMode == FastCacheMode.DEFAULT) {
        throw new IllegalStateException("an error occurred.");
    }
    if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.LOLLIPOP) {
        String url = webResourceRequest.getUrl().toString();
        String extension = MimeTypeMapUtils.getFileExtensionFromUrl(url);
        String mimeType = MimeTypeMapUtils.getMimeTypeFromExtension(extension);
        CacheRequest cacheRequest = new CacheRequest();
        cacheRequest.setUrl(url);
        cacheRequest.setMime(mimeType);
        cacheRequest.setForceMode(mFastCacheMode == FastCacheMode.FORCE);
        cacheRequest.setUserAgent(userAgent);
        cacheRequest.setWebViewCacheMode(cacheMode);
        Map<String, String> headers = webResourceRequest.getRequestHeaders();
        cacheRequest.setHeaders(headers);
        return getOfflineServer().get(cacheRequest);
    }
    throw new IllegalStateException("an error occurred.");
}
 
源代码2 项目: HybridCache   文件: HybridCacheManager.java
/**
 * call this method in {@link android.webkit.WebViewClient#shouldInterceptRequest(WebView, WebResourceRequest)}
 *
 * @param request the web res request
 * @return
 */
@RequiresApi(api = Build.VERSION_CODES.LOLLIPOP)
public WebResourceResponse interceptWebResRequest(WebResourceRequest request) {
    String url = request.getUrl().toString();
    Map<String, String> headers = request.getRequestHeaders();
    return interceptWebResRequest(url, headers);
}
 
源代码3 项目: Web3View   文件: Web3ViewClient.java
@Override
public WebResourceResponse shouldInterceptRequest(WebView view, WebResourceRequest request) {
    if (request == null) {
        return null;
    }
    if (!request.getMethod().equalsIgnoreCase("GET") || !request.isForMainFrame()) {
         if (request.getMethod().equalsIgnoreCase("GET")
                 && (request.getUrl().toString().contains(".js")
                    || request.getUrl().toString().contains("json")
                    || request.getUrl().toString().contains("css"))) {
            synchronized (lock) {
                if (!isInjected) {
                    injectScriptFile(view);
                    isInjected = true;
                }
            }
        }
        super.shouldInterceptRequest(view, request);
        return null;
    }

    HttpUrl httpUrl = HttpUrl.parse(request.getUrl().toString());
    if (httpUrl == null) {
        return null;
    }
    Map<String, String> headers = request.getRequestHeaders();
    JsInjectorResponse response;
    try {
        response = jsInjectorClient.loadUrl(httpUrl.toString(), headers);
    } catch (Exception ex) {
        return null;
    }
    if (response == null || response.isRedirect) {
        return null;
    } else {
        ByteArrayInputStream inputStream = new ByteArrayInputStream(response.data.getBytes());
        WebResourceResponse webResourceResponse = new WebResourceResponse(
                response.mime, response.charset, inputStream);
        synchronized (lock) {
            isInjected = true;
        }
        return webResourceResponse;
    }
}
 
源代码4 项目: alpha-wallet-android   文件: Web3ViewClient.java
@RequiresApi(api = Build.VERSION_CODES.LOLLIPOP)
@Override
public WebResourceResponse shouldInterceptRequest(WebView view, WebResourceRequest request) {
    if (request == null) {
        return null;
    }
    if (!request.getMethod().equalsIgnoreCase("GET") || !request.isForMainFrame()) {
         if (request.getMethod().equalsIgnoreCase("GET")
                 && (request.getUrl().toString().contains(".js")
                    || request.getUrl().toString().contains("json")
                    || request.getUrl().toString().contains("css"))) {
            synchronized (lock) {
                if (!isInjected) {
                    injectScriptFile(view);
                    isInjected = true;
                }
            }
        }
        super.shouldInterceptRequest(view, request);
        return null;
    }

    //check for known extensions
    if (handleTrustedExtension(request.getUrl().toString()))
    {
        return null;
    }

    HttpUrl httpUrl = HttpUrl.parse(request.getUrl().toString());
    if (httpUrl == null) {
        return null;
    }
    Map<String, String> headers = request.getRequestHeaders();

    JsInjectorResponse response;
    try {
        response = jsInjectorClient.loadUrl(httpUrl.toString(), headers);
    } catch (Exception ex) {
        return null;
    }
    if (response == null || response.isRedirect) {
        return null;
    } else if (TextUtils.isEmpty(response.data)){
        return null;
    } else {
        ByteArrayInputStream inputStream = new ByteArrayInputStream(response.data.getBytes());
        WebResourceResponse webResourceResponse = new WebResourceResponse(
                response.mime, response.charset, inputStream);
        synchronized (lock) {
            isInjected = true;
        }
        return webResourceResponse;
    }
}