android webview 中处理网页中的400、404、500等错误
16lz
2021-01-23
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 webviewprivate 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(); }}
更多相关文章
- 代码中设置drawableleft
- android 3.0 隐藏 系统标题栏
- Android开发中activity切换动画的实现
- Android(安卓)学习 笔记_05. 文件下载
- Android中直播视频技术探究之—摄像头Camera视频源数据采集解析
- 技术博客汇总
- android 2.3 wifi (一)
- AndRoid Notification的清空和修改
- Android中的Chronometer