gpt4 book ai didi

iphone - 使用 UIWebView loadRequest 发送自定义 header

转载 作者:IT王子 更新时间:2023-10-29 08:14:45 25 4
gpt4 key购买 nike

我希望能够使用我的 UIWebView loadRequest 方法发送一些额外的 header 。

我试过:

NSMutableURLRequest *req = [NSMutableURLRequest requestWithURL:[NSURL URLWithString:@"http://www.reliply.org/tools/requestheaders.php"]];
[req addValue:@"hello" forHTTPHeaderField:@"aHeader"];

[self.theWebView loadRequest:req];

我也尝试过子类化 UIWebView 并拦截 - (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType 方法。

在该方法中,我有一段代码如下所示:

NSMutableURLRequest *newRequest = [request mutableCopy];
for(NSString *key in [customHeaders allKeys]) {
[newRequest setValue:[customHeaders valueForKey:key] forHTTPHeaderField:key];
}
[self loadRequest:newRequest];

但由于某些未知原因,它导致 Web View 无法加载任何内容(空白帧)并且出现错误消息 NSURLErrorCancelled (-999)(所有已知的修复程序都无法修复它我)。

所以我不知道该怎么办。如何将自定义 header 与 UIWebView 请求一起发送?

非常感谢!

最佳答案

我发现这是将 header 添加到我的 UIWebView 请求的方法 - 覆盖此委托(delegate)方法:

- (BOOL) webView:(UIWebView*)webView shouldStartLoadWithRequest:(NSURLRequest*)request navigationType:(UIWebViewNavigationType) navigationType

使用这段代码:

BOOL headerIsPresent = [[request allHTTPHeaderFields] objectForKey:@"my custom header"]!=nil;

if(headerIsPresent) return YES;

dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
dispatch_async(dispatch_get_main_queue(), ^{
NSURL *url = [request URL];
NSMutableURLRequest* request = [NSMutableURLRequest requestWithURL:url cachePolicy:NSURLRequestUseProtocolCachePolicy timeoutInterval:60.0];

// set the new headers
for(NSString *key in [self.customHeaders allKeys]){
[request addValue:[self.customHeaders objectForKey:key] forHTTPHeaderField:key];
}

// reload the request
[self loadRequest:request];
});
});
return NO;

关于iphone - 使用 UIWebView loadRequest 发送自定义 header ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12844598/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com