Изменение заголовка запроса в WKWebview - PullRequest
0 голосов
/ 17 января 2019

В моем приложении для IOS есть требование, чтобы каждый запрос к серверу содержал определенный заголовок HTTP. Это касается не только первого запроса, но и всех последующих запросов должен содержать заголовок.

Для этого я перехватываю запрос с использованием делегата,

-(void) webView:(WKWebView *)webView decidePolicyForNavigationAction:(WKNavigationAction *)navigationAction decisionHandler:(void (^)(WKNavigationActionPolicy))decisionHandler{

if(([navigationAction.request.URL.host rangeOfString:kUSiteRegx options:NSRegularExpressionSearch].location != NSNotFound) &&
                            [navigationAction.request valueForHTTPHeaderField:kHttpRequestHeader] == nil){
        decisionHandler(WKNavigationActionPolicyCancel);
        [webView loadCustomRequest:navigationAction.request];
        return;
    }
}

Здесь я отменяю исходный запрос и делаю новый запрос, добавляя заголовок к исходному заголовку, как указано ниже.

-(WKNavigation*)loadCustomRequest:(NSURLRequest*)request{
    NSMutableURLRequest *req = [request mutableCopy];
    NSString *version = [[[NSBundle mainBundle] infoDictionary] objectForKey:@"CFBundleShortVersionString"];
    NSString *versionString = [kHttpRequestPrefix stringByAppendingString:version];
    [req setValue:versionString forHTTPHeaderField:kHttpRequestHeader];
    return [self loadRequest:req];
}

Теперь это мешает моему запросу прерваться, и ошибка, о которой он сообщает,

xmlhttprequest не может загрузиться из-за проверок контроля доступа

Как я могу преодолеть это?

...