Android WebView 自定义 WebResourceResponse 响应内容
您可以在 Android WebView 中使用 'WebResourceResponse' 类生成自己的 Web 资源响应。这个类允许您自定义 HTTP 响应的内容、编码、MIME 类型和状态码。以下是一个示例代码:
webView.setWebViewClient(new WebViewClient() {
@Override
public WebResourceResponse shouldInterceptRequest(WebView view, String url) {
// 判断是否需要拦截该请求
if (url.startsWith("http://example.com/")) {
// 创建一个 WebResourceResponse 对象
InputStream stream = new ByteArrayInputStream("Hello World".getBytes());
WebResourceResponse response = new WebResourceResponse("text/plain", "UTF-8", stream);
// 设置响应状态码和头信息
response.setStatusCodeAndReasonPhrase(200, "OK");
response.setResponseHeaders(Collections.singletonMap("X-My-Header", "My Value"));
return response;
}
// 否则返回 null,让 WebView 自己处理请求
return null;
}
});
在上面的示例中,如果请求的 URL 以 'http://example.com/' 开头,就会创建一个包含 'Hello World' 文本内容的 WebResourceResponse 对象,并设置编码为 UTF-8、MIME 类型为 text/plain、状态码为 200 OK,以及一个自定义的 X-My-Header 头信息。否则,就返回 null,让 WebView 自己处理请求。
注意,这种方法只适用于在 WebView 中加载的资源。如果您需要拦截应用程序中的其他网络请求,您需要使用 Android 的 HttpURLConnection 或 OkHttp 等网络库来拦截和处理请求。
原文地址: https://www.cveoy.top/t/topic/odvl 著作权归作者所有。请勿转载和采集!