2011-03-17 269 views
7

我需要在我的Android应用程序中显示一个网页,该应用程序正在寻找引用来绕过安全。我是Android新手,所以我知道如何在Web视图中显示网页,但不知道如何将URL和URL请求一起发送给引荐人。我确定它需要更新HTTPHeaderField,但在Android中找不到任何参考。下面的代码是我使用弹出网页,但没有“引荐”它说“拒绝访问”如何在web浏览器的url中发送referer请求

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

我想答案可能在于它增加了额外的头的WebView.LoadURL方法但我找不到任何例子。

回答

13

对于哪个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); 
+0

感谢您的回复,我确实在Android参考中注意到了这一点,但希望能找到一个例子。我的引用是“myblog201.com/” – user616076 2011-03-17 17:05:10

+0

感谢您的例子,我复制代码来尝试它,但我得到以下错误'类型WebView中的方法loadUrl(字符串)不适用于参数(字符串,地图<字符串,字符串>)',它会提示我删除额外的参数。难道我做错了什么? – user616076 2011-03-18 07:26:13

+0

你正在使用什么API级别?正如我写的,具有第二个参数的新loadUrl函数自API Level 8以来就存在。 – MacGucky 2011-03-18 08:02:03

0

您将需要使用意图过滤捕获和修改的WebView请求。

假设你需要指定doamin.com/page.html作为引荐

  1. 设置意图过滤器来捕获所有HTTP请求中的WebView
  2. 如果请求是“doamin.com/page.html “,返回具有刷新标记的预定义页面,以将用户发送到”http://www.mywebsite.com“
  3. domain.com/page.html将作为referrer发送到mywebsite.com

在较新的API中,您可以sp在loadUrl本身中确定头文件。

+0

你能举个例子吗? – 2017-02-03 19:44:27

相关问题