如何在webView的url中发送referer请求

时间:2011-03-17 16:51:41

标签: android httpwebrequest http-headers

我需要在我的Android应用中显示一个网页,该网页正在寻找绕过安全性的引用者。我是Android的新手,所以我知道如何在网页视图中显示网页,但不知道如何发送'referer'以及网址请求。我确定它需要更新HTTPHeaderField,但我在Android中找不到它的任何参考。下面的代码就是我用来调出网页但是没有'referer'它代表'拒绝访问'

WebView webview = new WebView(this);
setContentView(webview);
webview.loadUrl("http://www.mywebsite.com");

我认为答案可能在于WebView.LoadURL方法,该方法会添加额外的标题,但我找不到任何示例。

2 个答案:

答案 0 :(得分:16)

您需要哪个API级别的功能?

自API级别8起,还有第二个loadUrl函数:

  public void loadUrl (String url, Map<String, String> extraHeaders)

使用extraHeaders,您应该可以发送推荐人。

<小时/> 修改

这是一个完整的工作示例:

  String url = "http://www.targetserver.tld/";

  Map<String, String> extraHeaders = new HashMap<String, String>();
  extraHeaders.put("Referer", "http://www.referer.tld/login.html");

  WebView wv;
  wv = (WebView) findViewById(R.id.webview);
  wv.loadUrl(url, extraHeaders);

答案 1 :(得分:0)

您需要使用Intent Filters来捕获和修改WebView请求。

假设您需要将doamin.com/page.html指定为引荐来源

  1. 设置意图过滤器以捕获WebView中的所有http请求
  2. 如果请求是“doamin.com/page.html”,请返回具有刷新标记的预定义页面,以便将用户发送到“http://www.mywebsite.com”
  3. domain.com/page.html将作为推介人发送至mywebsite.com
  4. 在较新的API中,您可以在loadUrl本身中指定标题。