【问题标题】:HttpClient with WebView带有 WebView 的 HttpClient
【发布时间】:2011-08-09 08:56:39
【问题描述】:

我正在使用 httpclient 使用 loadDataWithBaseURL 在 webView 中显示网页。我的网站有一些链接,当用户单击链接时,我想继续使用 httpClient。有可能吗? 在这种情况下,当用户单击链接时,我必须拦截链接,以便我的浏览器加载它,然后停止加载并使用 HttpGet。听起来够合理吗?

编辑: 是的,那是个好主意.. 首先你设置一个客户端

comments.setWebViewClient(new WebViewClient(){
            @Override
            public boolean shouldOverrideUrlLoading(WebView view, String url){

                String LinkTag = "";
                try {
                    LinkTag = client.httpGet(url);
                } catch (ClientProtocolException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                } catch (URISyntaxException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                } catch (IOException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }

                comments.loadDataWithBaseURL("BaseWebUrl", LinkTag, "text/html", "utf-8", "");
                return true;
            }
        });

其次,您必须创建一个 httpClient 来处理您的 Posts 和 Gets 以及其他方法

【问题讨论】:

    标签: android webview httpclient


    【解决方案1】:

    您需要做的是在您调用 HttpClient hc = new DefaultHttpClient(); 之后将其设置为您使用它的第一个活动或类中的公共静态变量。然后当用户单击链接并且您必须调用 HttpGet您只需设置new HttpClient newName = originalClass.hc;,这将存储您的 cookie。

    public class FirstClass{  
       public static HttpClient hc = new DefaultClient();
       {make the original get call}
    
    public class NewClass{
        //new httpclient
        {HttpClient newHC = FirstClass.hc;}
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-05-07
      • 2017-11-03
      • 1970-01-01
      • 2017-12-12
      • 1970-01-01
      • 2016-02-16
      相关资源
      最近更新 更多