开发者

How to send a referer request in a url for a webView

I need to display a web page in my Android app which is looking for a referer to bypass the security. I'm new to Android so I know how to display the web page in a web view but not how to send the 'referer' along with the url request. I'm sure it will need to update the HTTPHeaderF开发者_如何学编程ield but I cannot find any reference for it in Android. The code below is what I'm using to bring up the web page but without the 'referer' it says 'Access Denied'

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

I think the answer may lie in the WebView.LoadURL method which adds extra headers but I can't find any examples of it.


For which API-level do you need that function?

Since API Level 8 there is a second loadUrl function:

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

With the extraHeaders you should be able to send a referrer.


EDIT:

Here is a complete working example:

  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);


You will need to use Intent Filters to capture and modify WebView requests.

Assuming that you need to specify doamin.com/page.html as referrer

  1. Setup intent filters to capture all http requests in WebView
  2. If request is for "doamin.com/page.html", return pre-defined page that has a refresh tag to send user to "http://www.mywebsite.com"
  3. domain.com/page.html would be sent as a referrer to mywebsite.com

In newer APIs you can specify headers in loadUrl itself.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜