/ / NSURLProtocol тайм-аут з AJAX - ios, ajax, uiwebview, nsurlprotocol

NSURLProtocol тайм аут AJAX - ios, ajax, uiwebview, nsurlprotocol

Я використовую NSURLProtocol, щоб додати спеціальний заголовок для всіхзапитів, що виходять з UIWebview. У цьому WebView при виконанні певної операції виклик AJAX виводиться для відображення повідомлення. Ця операція, щоб показати повідомлення, використовує AJAX, і завжди випадає, коли я використовую метод NSURLProtocol.

Дайте мені знати, якщо більше інформації need.Here мій код.

+ (BOOL)canInitWithRequest:(NSURLRequest *)request
{
if ([NSURLProtocol propertyForKey:kUserAgentKey inRequest:request] != nil)
return NO;

return YES;
}

+ (NSURLRequest *)canonicalRequestForRequest:(NSURLRequest *)request
{
return request;
}

- (void)startLoading
{
NSMutableURLRequest *newRequest = [self.request mutableCopy];


NSString *  customAgent = @"CustomeHeaderValue";
[newRequest setValue:customAgent forHTTPHeaderField:kUserAgentKey];

[NSURLProtocol setProperty:@YES forKey:kUserAgentKey inRequest:newRequest];
self.connection = [NSURLConnection connectionWithRequest:newRequest delegate:self];


}
- (void)stopLoading
{
[self.connection cancel];
}

- (void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data
{
[self.client URLProtocol:self didLoadData:data];
}

- (void)connection:(NSURLConnection *)connection didFailWithError:(NSError *)error
{
[self.client URLProtocol:self didFailWithError:error];
self.connection = nil;
}

- (void)connection:(NSURLConnection *)connection didReceiveResponse:(NSURLResponse *)response
{`enter code here`

[self.client URLProtocol:self didReceiveResponse:response cacheStoragePolicy:NSURLCacheStorageAllowed];
}

- (void)connectionDidFinishLoading:(NSURLConnection *)connection
{
[self.client URLProtocolDidFinishLoading:self];
self.connection = nil;
}

- (NSURLRequest *)connection:(NSURLConnection *)connection willSendRequest:(NSURLRequest *)request redirectResponse:(NSURLResponse *)response {
if (response) {
[[self client] URLProtocol:self wasRedirectedToRequest:request redirectResponse:response];
}

return request;
}

Відповіді:

0 для відповіді № 1

спробувати реалізувати цей метод

-(NSURLRequest *)connection:(NSURLConnection *)connection willSendRequest:(NSURLRequest *)request redirectResponse:(NSURLResponse *)response{
[self.client URLProtocol:self wasRedirectedToRequest:request redirectResponse:response];
return request;
}

0 для відповіді № 2

Для людей, які намагаються отримати AJAX і NSURLProtocol спільно на iOS, див.

Як макувати AJAX виклик з NSURLProtocol?