【问题标题】:Add Basic HTTP Authentication header to AFHttpRequestOperation & download file将基本 HTTP 身份验证标头添加到 AFHttpRequestOperation 和下载文件
【发布时间】:2012-10-31 03:23:22
【问题描述】:

我没有在 AFHttpRequestOperation 中找到任何可以添加 HTTP 标头的 API。看起来 AFHttpClient 具有这种支持,但所有示例似乎都使用 AFHttpClient 来发布数据而不是下载。

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

另外,在使用 AFHttpRequestOperation 时,有没有办法从内存中的 HTTP 服务器下载数据作为 NSData,而不是直接将其写入文件?

【问题讨论】:

    标签: ios afnetworking


    【解决方案1】:

    你说得对,AFHTTPRequestOperation 中没有直接的方法来添加 HTTP 标头,幸运的是这是故意的。

    AFHTTPRequestOperation 的设置一开始可能看起来很麻烦,但一旦你用过它就很有意义。

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

    2. 使用适当的方法在 AFHTTPClient 中设置标头:
      [client setDefaultHeader:@"key" value:@"value"];
      [client setAuthorizationHeaderWithUsername:@"username" password:@"password"];
      [client setAuthorizationHeaderWithToken:@"token"];

    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 标头完美配合。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-06-10
      相关资源
      最近更新 更多