2016-08-18 26 views
0

我無法使用預先註冊的url從S3獲取圖像,並且AFNetworking 3.0。我可以使用NSMutableURLRequestNSURLSession來獲取圖像,但是當我使用AFHTTPSessionManagerNSMutableURLRequest時,出現403錯誤。 (我真的想通過調用setImageWithURLRequest來加載圖片,這也給了我一個403錯誤,但我寫了這個代碼,它使用AFHTTPSessionManager來嘗試調試這個問題。)我怎麼會在AFNetworking上做錯?GET成功使用NSURLSession,但使用AFHTTPSessionManager失敗

let request = NSMutableURLRequest() 
request.HTTPMethod = "GET" 
request.URL = coverPhotoUrl // A presigned url to an image on S3 

// The operation succeeds if I uncomment the NSURLSession line 
// and comment out the AFHTTPSessionManager line. 
//NSURLSession.sharedSession().dataTaskWithRequest(request) { 
AFHTTPSessionManager().dataTaskWithRequest(request) { 
    date, response, error in 
    if let error = error { 
     Log.error?.message("request failed: \(error.localizedDescription)") 
    } else { 
     Log.debug?.message("request succeeded.") 
    } 
} 
.resume() 

回答

0

由於內容類型問題,AFNetworking失敗了請求。 setImageWithURL在將S3文件的內容類型從二進制/八位字節更改爲image/jpeg後生效。

獲得S3來設置內容類型也很困難。如果對其他人有用,S3忽略我的PUT請求中的內容類型,直到我指定了內容長度。生成預定義的URL時,我只使用了1的虛擬長度,儘管實際文件更長。

相關問題