我正在使用 AFNetworking 类与 Web 服务进行交互。我在这方面遇到了一些问题。
AFHTTPRequestOperation *operation = [[AFHTTPRequestOperation alloc]initWithRequest:theRequest];// using AFHTTPRequestOperation to request Data
[operation setRedirectResponseBlock:^NSURLRequest *(NSURLConnection *connection, NSURLRequest *request, NSURLResponse *redirectResponse) {
NSLog(@"connection :%@",connection);
NSLog(@"request :%@",request);
NSLog(@"response :%@",redirectResponse); question 1:? i get NSURLResponse value is null. output:response :(null)
return request;
}];
在断点的帮助下,我检查了 AFNetworking 类(类名:AFURLConnectionOperation.m)是否从服务器获得响应?是的,它得到了回应。
- (void)setRedirectResponseBlock:(NSURLRequest * (^)(NSURLConnection *connection, NSURLRequest *request, NSURLResponse *redirectResponse))block {
self.redirectResponse = block;
NSLog(@"connection :%@",_connection);
NSLog(@"request :%@",_request);
NSLog(@"response :%@",_redirectResponse);//getting NSURLResponse from server.(its showing response) output: response :<__NSGlobalBlock__: 0x46238>
NSLog(@"block :%@",block);
}
我的问题是,当我在我的类 NSURLResponse *redirectResponse 中调用 [operation setRedirectResponseBlock.....] 时总是有空值但是当我签入时 - (void)setRedirectResponseBlock..... 在 AFURLConnectionOperation.m 类 NSURLResponse *redirectResponse有一定的价值。你能帮忙知道我错在哪里。上周一整天我都在谷歌上搜索,我找不到任何与此相关的答案。
我正在使用“theRequest.cachePolicy = NSURLRequestUseProtocolCachePolicy;” 因为我不想一直从服务器加载,只有在标题中有任何修改时,我才想再次调用。为此,我需要使用“setRedirectResponseBlock”来编写下面的代码。
if ([response isKindOfClass:[NSHTTPURLResponse self]]) {
NSDictionary *headers = [(NSHTTPURLResponse *)response allHeaderFields];
NSString *modified = [headers objectForKey:@"Last-Modified"];
if (modified) { .......
请帮我解决这个问题,非常感谢示例。