AFNetWorking遇到的問題-Error Domain=com.alamofire.error.serialization.response Code=-1016 "Request failed: unacceptable con

參考地址:

http://blog.csdn.net/dengbin9009/article/details/43485617

在使用AFNetworking 2.0? 的時候本來一切很順暢,但是中途遇到幾個比較坑的地方

這里分享一下爬坑經(jīng)歷,忘讀者不能速爬坑!

在發(fā)送請求后,NSURLSessionDataTask一直報錯

Error Domain=com.alamofire.error.serialization.response Code=-1016 "Request failed: unacceptable content-type: text/html"

經(jīng)過一番網(wǎng)上排查,網(wǎng)上有人說是AF2.0本身的問題,解析格式不全,所以需要在AF的源文件AFURLResponseSerialization.m中修改代碼就能解決:

修改文件223行

1 // 修改前

2 self.acceptableContentTypes = [NSSet setWithObjects:@"application/json", @"text/json", @"text/javascript", nil nil];

4 // 修改后

5 self.acceptableContentTypes = [NSSet setWithObjects:@"application/json", @"text/json", @"text/javascript",@"text/html", nil nil];

筆者試過確實可以,但是AF還在持續(xù)更新的類庫,不宜隨意修改,特別是在用了CocoaPods之后,如果之后更新庫,此類錯誤又會重復出現(xiàn),隨后筆者發(fā)現(xiàn)acceptableContentTypes是一個開放的屬性,既然這樣,就證明acceptableContentTypes可以在外部被修改,所以可以在

初始化HttpClient單利的時候改變這一值:

1 - (instancetype)initWithBaseURL:(NSURL *)url {

2? ? if (self = [super initWithBaseURL:url]) {

3

4? ? ? ? self.responseSerializer = [AFJSONResponseSerializer serializer];

5? ? ? ? self.requestSerializer.timeoutInterval = TimeoutInterval;

6? ? ? ? self.responseSerializer.acceptableContentTypes=[NSSet setWithObjects:@"application/json", @"text/json", @"text/javascript",@"text/html", nil nil];

7? ? ? ? [self setHTTPHeader];? // 可在此處設(shè)置Http頭信息

8? ? }

9? ? return self;

10 }

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容