jia*_*hua 3 uiwebview http-headers ios cordova
我的iOS UIWebView页面基于Cordova开源框架,我想在其webview URL请求中添加一些自定义http标头,我的解决方案是将它们添加到以下UIWebView委托方法中.
调试显示标题已成功添加,但实际上请求不会将它们删除.使用Wireshark捕获网络数据包,发现只有标准标头可用,没有我的自定义标头.
我的测试基于模拟器(iOS 7.1),任何有此主题经验的人都请一起分享和讨论,提前感谢.
- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType
{
// Add customize http headers in UIWebView request
if([request isKindOfClass:[NSMutableURLRequest class]]) {
NSMutableURLRequest * mRequest = (NSMutableURLRequest *)request;
[mRequest setValue:@"1.1" forHTTPHeaderField:@"appVersion"];
[mRequest setValue:@"iPhone 4S" forHTTPHeaderField:@"deviceModel"];
}
return [super webView:webView shouldStartLoadWithRequest:request navigationType:navigationType];
}
Run Code Online (Sandbox Code Playgroud)
Uma*_*lid 17
我知道它很晚但可能会帮助SWIFT 3.0的其他人
let weburl = NSURL(string: "http://www.mywebsite.com")
let request = NSMutableURLRequest(URL: weburl!)
request.setValue("HEADER_VALUE", forHTTPHeaderField:"HEADER_NAME")
myWebView.loadRequest(request)
Run Code Online (Sandbox Code Playgroud)
有时,即使您分配了所有 http 标头,也不会设置 Cookie。最好创建可变请求并复制您的 nsurlrequest 并将您的自定义标头添加到其中,以便原始请求中的所有信息都保留在可变请求中。
- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest*)request navigationType:(UIWebViewNavigationType)navigationType
{
if(check if key not present){
NSMutableURLRequest *re = [[NSMutableURLRequest alloc] init];//alloc init not required
re = (NSMutableURLRequest *) request.mutableCopy;
[re setValue:@"Your Custom Value" forHTTPHeaderField:@"Yout Custom Header"];
[webView loadRequest:re] ;
return NO;
}
return YES;
}
Run Code Online (Sandbox Code Playgroud)
您有两个选择,要么在开始时创建NSMutableUrlRequest并使用 webView loadReqest 加载它,要么使用NSURLProtocol接管应用程序的完整 URL 加载。
最简单的方法是第一个选择,因为它只有一行额外的代码:
[webView loadRequest:mRequest];
Run Code Online (Sandbox Code Playgroud)
第二种选择使用NSURLProtocol来接管应用程序的 URL 加载。这涉及使用创建具体类来注册您自己的解决方案。重写的主要方法是canonicalRequestForRequest.
我建议你看一下NSNipster和raywenderlich这两个教程作为指南。
| 归档时间: |
|
| 查看次数: |
25478 次 |
| 最近记录: |