2

AFHttpRequestOperation に、HTTP ヘッダーを追加できる API が見つかりません。AFHttpClient はそのサポートを持っているように見えますが、すべての例では、ダウンロードではなくデータの投稿に AFHttpClient を使用しているようです。

カスタム Http ヘッダーまたは認証ヘッダーを AFHttpRequestOperation に追加するにはどうすればよいですか?

また、AFHttpRequestOperation を使用するときに、データをファイルに直接書き込む代わりに、HTTP サーバーからメモリ内のデータを NSData としてダウンロードする方法はありますか?

4

1 に答える 1

6

HTTP ヘッダーを追加するための AFHTTPRequestOperation に直接的な方法がないことは正しいです。幸いなことに、それは意図的なものでした。

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 ヘッダーで完全に機能するはずです。

于 2012-11-13T00:09:35.267 に答える