在使用第 3 方 API 时,我需要在出现 时取消所有流量。自定义响应头 设置为某个值。我试图在我的代码中找到一个只进行一次检查的好地方(而不是在每个成功/失败 block 中,它都可以正常工作)。据我了解,这可以通过覆盖 -(void)enqueueHTTPRequestOperation:(AFHTTPRequestOperation *)operation
来完成。在我的自定义AFHTTPClient
子类,但是当我这样实现它时:
-(void)enqueueHTTPRequestOperation:(AFHTTPRequestOperation *)operation
{
NSLog(@"[REQUEST URL]\n%@\n", [operation.request.URL description]);
NSLog(@"[RESPONSE HEADERS]\n%@\n", [[operation.response allHeaderFields] descriptionInStringsFileFormat]);
[super enqueueHTTPRequestOperation:operation];
}
响应头是
nil
.有人可以帮我吗?
最佳答案
在 AFHTTPClient
中创建和排队操作的时刻,它们将没有来自服务器的响应——将在实际执行请求操作时分配。
尽管取消所有流量的要求似乎不合常规(至少在 HTTP 约定之外的情况下),但这很容易实现:
在您的 AFHTTPClient
子类,添加 BOOL
存储是否应阻止请求的属性,然后在 enqueueHTTPRequestOperation
中使用.然后,覆盖 HTTPRequestOperationWithRequest:success:failure:
如果存在显着响应,则执行指定的成功 block 以及一些设置上述属性的逻辑。
关于ios - 如何每次使用 AFNetworking 读取响应 header ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11295781/