如何将 URL 请求作为“Referer”发送

use*_*076 2 java http-referer android nsurlrequest android-webview

我有一个应用程序,它首先作为 iPhone 应用程序存在,现在作为 Android 应用程序存在。其中一个功能是加载一个网页,该网页通过将字符串作为 Referer 传递来绕过安全登录。iPhone的代码如下 -

NSMutableURLRequest *request = [NSMutableURLRequest new];
[request setValue:@"http://myweb.com/" forHTTPHeaderField:@"referer"];
[request setURL:[NSURL URLWithString:@"http://www.theirweb.com/meetings/meetings.plx?CID=TEST2012&O=Generic&Key=4s6p2wz9"]];

[htmlDoc loadRequest:request];
Run Code Online (Sandbox Code Playgroud)

我在我的 Android 应用程序中使用的代码是 -

 WebView webview = new WebView(this);
 setContentView(webview);

 webview.loadUrl("http://www.theirweb.com/meetings/meetings.plx?CID=TEST2012&O=Generic&Key=4s6p2wz9");  
Run Code Online (Sandbox Code Playgroud)

但是,当我运行它时,访问被拒绝,因为我没有将请求作为“Referer”发送。我怎样才能在我的 Android 代码中做到这一点?

Mar*_*mro 5

使用带有参数的loadUrl()additionalHttpHeaders。它从 Android 2.2 开始可用。

Map<String, String> extraHeaders = new HashMap<String, String>();
extraHeaders.put("Referer", "http://www.example.com");

WebView wv = (WebView) findViewById(R.id.webview);
wv.loadUrl("http://google.com", extraHeaders);
Run Code Online (Sandbox Code Playgroud)