我没有在AFHttpRequestOperation中找到任何可以添加HTTP标头的API。看起来AFHttpClient有这种支持,但所有示例似乎都使用AFHttpClient来发布数据而不是下载。
如何向AFHttpRequestOperation添加自定义Http标头或身份验证标头?
另外,有没有办法从内存中的HTTP服务器下载数据作为NSData,而不是在使用AFHttpRequestOperation时直接将数据写入文件?
答案 0 :(得分:6)
您已经确定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标头完美配合。