在進行網(wǎng)絡(luò)請求時出現(xiàn)-1016 是因為只支持
text/json,application/json瘦真,text/javascript
你可以添加text/html
一勞永逸的方法是 在
AFURLResponseSerialization.h
里面搜索
self.acceptableContentTypes
然后 在里面 添加
@"text/html",@"text/plain"
這樣就可以解決-1016的錯誤了
但是隨之而來的是3840錯誤
Error Domain=NSCocoaErrorDomain Code=3840 "The operation couldn’t be completed. (Cocoa error 3840.)" (JSON text did not start with array or object and option to allow fragments not set.) UserInfo=0x9152780 {NSDebugDescription=JSON text did not start with array or object and option to allow fragments not set.}
你會發(fā)現(xiàn)出現(xiàn)此錯誤
怎么辦呢
添加如下語句 就可以解決問題了
manger.requestSerializer= [AFHTTPRequestSerializerserializer];
manger.responseSerializer= [AFHTTPResponseSerializerserializer];
是否成功了,成功了吧!但是新問題出現(xiàn)了 ?編碼問題 ?如果服務(wù)器返回a 的話 ? 你收到的 是<61>
這樣 ?怎么能行呢?
當(dāng)你用瀏覽器 去請求時 發(fā)現(xiàn) 響應(yīng)頭Content-Type:text/html;charset=UTF-8 是這樣的
但是afNetwork 請求是Content-Type:text/plain;charset=ISO-8859-1 是這樣的 ?不一致了吧
為什么 pc瀏覽器 訪問的 和用afNetwork 訪問的 不一致呢? 不了解 什么情況?
接著發(fā)現(xiàn) ?其實 添加 如下二句 即可 ?也不用去修改AFURLResponseSerialization.h 里面的東西
manger.requestSerializer= [AFHTTPRequestSerializerserializer];
manger.responseSerializer= [AFHTTPResponseSerializerserializer];
把 收到的
responseObject 轉(zhuǎn)換一下 編碼 就OK了
NSData*doubi = responseObject;
NSString*shabi =? [[NSStringalloc]initWithData:doubiencoding:NSUTF8StringEncoding];
轉(zhuǎn)載至:http://blog.csdn.net/huifeidexin_1/article/details/38844535