gpt4 book ai didi

ios - AFHTTPRequestOperationManager 的操作没有得到 header

转载 作者:行者123 更新时间:2023-11-29 12:38:42 25 4
gpt4 key购买 nike

我正在使用以下代码来设置我的运营管理器:

requestSerializerJson = [AFJSONRequestSerializer serializer];
[requestSerializerJson setValue:[taskHandler getBranchesApiConstantForName:@"header_value_content_type"] forHTTPHeaderField:[taskHandler getBranchesApiConstantForName:@"header_name_content_type"]];
[requestSerializerJson setValue:[taskHandler getBranchesApiConstantForName:@"header_value_api_key"] forHTTPHeaderField:[taskHandler getBranchesApiConstantForName:@"header_name_api_key"]];

httpRequestOperationManager = [AFHTTPRequestOperationManager manager];
httpRequestOperationManager.requestSerializer = requestSerializerJson;
httpRequestOperationManager.responseSerializer = [AFJSONResponseSerializer serializer];
httpRequestOperationManager.operationQueue = [[NSOperationQueue alloc] init];
httpRequestOperationManager.operationQueue.maxConcurrentOperationCount = 1;

然后,我得到了一个下载多个 JSON 字符串的方法:

- (void)downloadBranches {

NSLog(@"Test %@", httpRequestOperationManager.requestSerializer.HTTPMethodsEncodingParametersInURI);

for (NSString *branchUuid in taskHandler.addedBranchesUuids) {

NSString *urlString = [NSString stringWithFormat:@"%@%@%@", urlBase, [taskHandler getBranchesApiConstantForName:@"getbranch_suffix"], branchUuid];
NSURL *URL = [NSURL URLWithString:urlString];
NSURLRequest *request = [NSURLRequest requestWithURL:URL];

NSLog(@"Test %@", request.allHTTPHeaderFields);

AFHTTPRequestOperation *op = [httpRequestOperationManager HTTPRequestOperationWithRequest:request success:^(AFHTTPRequestOperation *operation, id responseObject) {

NSLog(@"JSON: %@", responseObject);

} failure:^(AFHTTPRequestOperation *operation, NSError *error) {

NSLog(@"Error: %@", error);
}];
op.responseSerializer = [AFJSONResponseSerializer serializer];

[httpRequestOperationManager.operationQueue addOperation:op];
}
}

所有操作都已执行,但我从服务器收到一条消息,提示我没有提供身份验证 key 。

我专门在第 3 行设置它 - 用于 requestSerializerJson,然后将其添加到 httpRequestOperationManager,因此所有请求都应使用 header 。

我添加了一个 NSLog 来打印 request.allHTTPHeaderFields 但它显示“(null)”。

我该如何解决这个问题?

最佳答案

downloadBranches 通过手动构建 NSURLRequest 完全绕过序列化程序。序列化器的全部意义在于为你做这件事。

您需要在您的序列化器上调用 requestWithMethod:URLString:parameters:,它将返回一个包含您想要的 header 的 NSURLRequest

或者只是在 for 循环中使用操作管理器的 GET:... 方法;您的用例看起来根本不需要这些其他东西。

关于ios - AFHTTPRequestOperationManager 的操作没有得到 header ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25574050/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com