html5中文学习网

您的位置: 首页 > android » 正文

Android中Webview打开网页的同时发送HTTP头信息方法_Android

[ ] 已经帮助:人解决问题

众所周知,当你点击一个超链接进行跳转时,WebView会自动将当前地址作为Referer(引荐)发给服务器,因此很多服务器端程序通过是否包含referer来控制盗链,所以有些时候,直接输入一个网络地址,可能有问题,那么怎么解决盗链控制问题呢,其实在webview加载时加入一个referer就可以了,如何添加呢?Y8iHTML5中文学习网 - HTML5先行者学习网

从Android 2.2 (也就是API 8)开始,WebView新增加了一个接口方法,就是为了便于我们加载网页时又想发送其他的HTTP头信息的。Y8iHTML5中文学习网 - HTML5先行者学习网

复制代码 代码如下:
Y8iHTML5中文学习网 - HTML5先行者学习网
public void loadUrl (String url, Map<String, String> additionalHttpHeaders)Y8iHTML5中文学习网 - HTML5先行者学习网
Added in API level 8Y8iHTML5中文学习网 - HTML5先行者学习网
Loads the given URL with the specified additional HTTP headers.Y8iHTML5中文学习网 - HTML5先行者学习网
ParametersY8iHTML5中文学习网 - HTML5先行者学习网
url the URL of the resource to loadY8iHTML5中文学习网 - HTML5先行者学习网
additionalHttpHeaders the additional headers to be used in the HTTP request for this URL, specified as a map from name to value. Note that if this map contains any of the headers that are set by default by this WebView, such as those controlling caching, accept types or the User-Agent, their values may be overriden by this WebView's defaults.Y8iHTML5中文学习网 - HTML5先行者学习网
Y8iHTML5中文学习网 - HTML5先行者学习网

以下是一个简单的demo,来展示以下如何使用。Y8iHTML5中文学习网 - HTML5先行者学习网

复制代码 代码如下:
Y8iHTML5中文学习网 - HTML5先行者学习网
public void testLoadURLWithHTTPHeaders() {Y8iHTML5中文学习网 - HTML5先行者学习网
    final String url = "http://jb51.net";Y8iHTML5中文学习网 - HTML5先行者学习网
    WebView webView = new WebView(getActivity());Y8iHTML5中文学习网 - HTML5先行者学习网
    Map<String,String> extraHeaders = new HashMap<String, String>();Y8iHTML5中文学习网 - HTML5先行者学习网
    extraHeaders.put("Referer", "http://www.google.com");Y8iHTML5中文学习网 - HTML5先行者学习网
    webView.loadUrl(url, extraHeaders);Y8iHTML5中文学习网 - HTML5先行者学习网
}Y8iHTML5中文学习网 - HTML5先行者学习网
Y8iHTML5中文学习网 - HTML5先行者学习网

同样上面也可以应用到UserAgent等其他HTTP头信息。Y8iHTML5中文学习网 - HTML5先行者学习网

(责任编辑:)
推荐书籍
推荐资讯
关于HTML5先行者 - 联系我们 - 广告服务 - 友情链接 - 网站地图 - 版权声明 - 人才招聘 - 帮助