如何在 webView 的 url 中发送引用请求

发布于 2024-10-23 16:30:34 字数 394 浏览 5 评论 0原文

我需要在我的 Android 应用程序中显示一个网页,该应用程序正在寻找引用来绕过安全性。我是 Android 新手,所以我知道如何在 Web 视图中显示网页,但不知道如何与 url 请求一起发送“referer”。我确信它需要更新 HTTPHeaderField 但我在 Android 中找不到任何参考。下面的代码是我用来打开网页的代码,但没有“引用者”,它显示“访问被拒绝”

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

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

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 HTTPHeaderField 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.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

站稳脚跟 2024-10-30 16:30:34

您需要该函数用于哪个 API 级别?

从 API Level 8 开始,有第二个 loadUrl 函数:

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

使用 extraHeaders,您应该能够发送引荐来源网址。


EDIT:

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

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

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);
谜泪 2024-10-30 16:30:34

您将需要使用 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 的引荐来源网址发送。

在较新的 API 中,您可以在 loadUrl 本身中指定标头。

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.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文