2012-10-31 31 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標頭完美協作。