iOS7使用AFNetworking3.0上傳圖片時出現的問題

文/掙扎在編碼世界(簡書作者)
原文鏈接:http://www.jianshu.com/p/0a3820d6a951
著作權歸作者所有,轉載請聯繫作者獲得授權,並標註“簡書作者”。

背景:在上一個項目版本中一直使用AFNetworking2.0這個主流的網絡請求庫,AFHTTPRequestOperationManager從來未讓人操心過。在新版迭代中,突發奇想的去升級AFNetworking3.0,使用了AFHTTPSessionManger之後讓我操碎了心,如何操碎了新,讓我慢慢道來。

在使用AFNetworking v3.0之前,當然是要去了解一下AFNetworking v3.0的具體變化(當然,v2.0版本我也不是很熟,就知道AFHTTPRequestOperationManager而已)。簡要的總結說是AFHTTPRequestOperationManager這個類已經被棄用了,將使用AFHTTPSessionManger來取而代之,具體原因可以查看一下AFNetworking 3.0遷移指南。就聽大神的說,都換成了AFHTTPSessionManger,API也更新了一遍。用虛擬機跑了一遍主要的用到的API,主要是以下三個:

*[AFHTTPSessionManger GET: parameters: progress: success: failure:] 

*[AFHTTPSessionManger POST: parameters: progress: success: failure:]

*[AFHTTPSessionManger POST: parameters: constructingBodyWithBlock: progress: success: failure:] 

在iOS8.0以上版本是正常運行,即使在上傳圖片的時候出現response Code=-1016 "Request failed: unacceptable content-type: text/html"的問題也是用

AFHTTPSessionManager *manager = [AFHTTPSessionManager manager];

manager.responseSerializer.acceptableContentTypes = [NSSet setWithObject:@"text/html"]

或者是

AFHTTPSessionManager *manager = [AFHTTPSessionManager manager];

manager.responseSerializer = [AFHTTPResponseSerializer serializer]

輕鬆解決。

只是在iOS7.1的版本,使用前兩個沒有什麼問題,倒是上傳功能,出了response Code=-1011 "Request failed: length required (411)這個問題讓我糾結了一遍。後來查了一下AFNetworking的issue集,還真遇到一個,試了幾次終於可以使用了,下面貼下代碼:

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章