我在 AFHttpRequestOperation 中找不到任何可以添加 HTTP 标头的 API。看起来 AFHttpClient 具有这种支持,但所有示例似乎都使用 AFHttpClient 来发布数据而不是下载。
如何将自定义 Http 标头或身份验证标头添加到 AFHttpRequestOperation?
另外,有没有办法从内存中的 HTTP 服务器下载数据作为 NSData,而不是在使用 AFHttpRequestOperation 时直接将其写入文件?
我在 AFHttpRequestOperation 中找不到任何可以添加 HTTP 标头的 API。看起来 AFHttpClient 具有这种支持,但所有示例似乎都使用 AFHttpClient 来发布数据而不是下载。
如何将自定义 Http 标头或身份验证标头添加到 AFHttpRequestOperation?
另外,有没有办法从内存中的 HTTP 服务器下载数据作为 NSData,而不是在使用 AFHttpRequestOperation 时直接将其写入文件?
您是正确的,AFHTTPRequestOperation 中没有直接的方法来添加 HTTP 标头,幸运的是这是故意的。
AFHTTPRequestOperation 的设置一开始可能看起来很麻烦,但一旦你使用它就很有意义。
创建一个 AFHTTPClient。AFHTTPClient *client = [AFHTTPClient clientWithBaseURL:[NSURL URLWithString:@"http://mysite.com]];
使用适当的方法在 AFHTTPClient 中设置您的标头:
[client setDefaultHeader:@"key" value:@"value"];
[client setAuthorizationHeaderWithUsername:@"username" password:@"password"];
[client setAuthorizationHeaderWithToken:@"token"];
使用您的 AFHTTPClient 创建一个 NSURLRequest,这是关键
NSURLRequest *request = [client requestWithMethod:@"someMethod" path:@"somePath" parameters:nil];
使用您的 NSURLRequest 创建 AFHTTPRequestOperation
AFHTTPRequestOperation *operation = [[AFHTTPRequestOperation alloc] initWithRequest:request];
从那里你准备好了。您可以使用- setCompletionBlockWithSuccess:failure:
,也可以只使用[operation start]
并做其他事情。但这应该与您想要的任何 HTTP 标头完美配合。