gpt4 book ai didi

android - 如何获取 webview 响应 header ?

转载 作者:行者123 更新时间:2023-11-29 14:12:30 34 4
gpt4 key购买 nike

我想监听 webview header 并获取 response header,可以吗?

我试过这个方法,但这只给我请求头

myWebView.setWebViewClient(new WebViewClient() {

@Override
@TargetApi(Build.VERSION_CODES.LOLLIPOP)
public boolean shouldOverrideUrlLoading(WebView view, WebResourceRequest request) {
Log.v("USERAGENTBROWSE", "shouldOverrideUrlLoading api >= 21 called");

//some code

return true;
}

@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
Log.v("USERAGENTBROWSE", "shouldOverrideUrlLoading api < 21 called");

//some code

return true;
}});

最佳答案

使用下面的代码

private WebView webview;
public void onCreate(Bundle icicle){
// bla bla bla

// here you initialize your webview
webview = new WebView(this);
webview.setWebViewClient(new YourWebClient());
}

// this will be the webclient that will manage the webview
private class YourWebClient extends WebViewClient{

// you want to catch when an URL is going to be loaded
public boolean shouldOverrideUrlLoading (WebView view, String urlConection){
// here you will use the url to access the headers.
// in this case, the Content-Length one
URL url;
URLConnection conexion;
try {
url = new URL(urlConection);
conexion = url.openConnection();
conexion.setConnectTimeout(3000);
conexion.connect();
// get the size of the file which is in the header of the request
int size = conexion.getContentLength();
}


// and here, if you want, you can load the page normally
String htmlContent = "";
HttpGet httpGet = new HttpGet(urlConection);
// this receives the response
HttpResponse response;
try {
response = httpClient.execute(httpGet);
if (response.getStatusLine().getStatusCode() == 200) {
// la conexion fue establecida, obtener el contenido
HttpEntity entity = response.getEntity();
if (entity != null) {
InputStream inputStream = entity.getContent();
htmlContent = convertToString(inputStream);
}
}
} catch (Exception e) {}

webview.loadData(htmlContent, "text/html", "utf-8");
return true;
}

public String convertToString(InputStream inputStream){
StringBuffer string = new StringBuffer();
BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream));
String line;
try {
while ((line = reader.readLine()) != null) {
string.append(linea + "\n");
}
} catch (IOException e) {}
return string.toString();
}
}

归功于 Cristian

关于android - 如何获取 webview 响应 header ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49174622/

34 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com