2012-10-31 33 views
2

我在AFHttpRequestOperation中找不到可添加HTTP标头的任何API。看起来像AFHttpClient有这种支持,但所有的例子似乎使用AFHttpClient发布数据而不是下载。将基本HTTP身份验证标头添加到AFHttpRequestOperation并下载文件

如何将自定义Http标头或身份验证标头添加到AFHttpRequestOperation?

此外,是否有任何方式下载数据从内存中的HTTP服务器作为NSData而不是直接写入到文件时使用AFHttpRequestOperation?

回答

6

你是正确的,没有在AFHTTPRequestOperation中添加HTTP头的直接方法,幸运的是,这是故意的。

AFHTTPRequestOperation的设置起初看起来很麻烦,但是一旦你使用它,它确实有很大的意义。

  1. 创建一个AFHTTPClient。 AFHTTPClient *client = [AFHTTPClient clientWithBaseURL:[NSURL URLWithString:@"http://mysite.com]];

  2. 设置你的头在你的AFHTTPClient用适当的方法:
    ​​

  3. 使用AFHTTPClient创建的NSURLRequest,这是关键
    NSURLRequest *request = [client requestWithMethod:@"someMethod" path:@"somePath" parameters:nil];

  4. 与你的NSURLRequest创建AFHTTPRequestOperation
    AFHTTPRequestOperation *operation = [[AFHTTPRequestOperation alloc] initWithRequest:request];

从那里开始设置。您可以使用- setCompletionBlockWithSuccess:failure:或者您可以使用[operation start]并执行其他操作。但是,无论您想要什么,这都应该与您的HTTP标头完美协作。