我使用httpclient在webView中使用loadDataWithBaseURL显示网页。我的网站有一些链接,我想继续使用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来处理你的post和Gets和其他方法
您需要做的是在您调用HttpClient hc = new DefaultHttpClient();
后将其设置为您正在使用的第一个活动或类中的公共静态变量。然后当用户点击一个链接,你必须调用HttpGet,你将只设置new HttpClient newName = originalClass.hc;
,这将存储你的cookies。
public class FirstClass{
public static HttpClient hc = new DefaultClient();
{make the original get call}
public class NewClass{
//new httpclient
{HttpClient newHC = FirstClass.hc;}