ios - 如何每次使用 AFNetworking 读取响应 header ?

标签 ios afnetworking

在使用第 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/

相关文章:

html - iOS 设备上的全屏 HTML 位于状态栏下方

ios - 将 Flex UI 与 native Objective C 结合到单个 ios 应用程序中

ios - AFNetworking 自动保存 Cookie

objective-c - AFNetworking 简单 HTTP 请求

ios - AFNetworking请求操作-创建 channel /瓶颈队列单例

ios - AFNetworking 1.3.1 图像下载responseObject 为nil

ios - 在 UITableViewCell 中点击按钮时创建具有相同键但不同值的字典数组

ios - 带有 clousers 的泛型错误,即 '(Any) -> Void' 不可转换为 '(T) -> Void

ios - 如何在IOS Swift中获取FBSDKAccessToken

ios - Swift Alamofire VS AFNetworking