欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

IOS  AFNetworking的Post失敗及requestSerializer的正確使用

 更新時間:2017年05月16日 11:47:06   作者:W_C__L  
這篇文章主要介紹了IOS AFNetworking的Post失敗及requestSerializer的正確使用的相關(guān)資料,需要的朋友可以參考下

IOS  AFNetworking的Post失敗及requestSerializer的正確使用

前言:

最近接手一個項目,因為之前的項目里面POST請求用的是ASI的,我就想著給替換成AFNetworking,但是在替換過程中遇到了一個大坑,解決了半天才發(fā)現(xiàn)是一個小問題,下面將我的問題給大家分享一下:

錯誤描述和發(fā)現(xiàn)過程

Error Domain=NSCocoaErrorDomain Code=3840 "JSON text did not start with array or object and option to allow fragments not set."

看了錯誤描述后,根據(jù)它的描述是因為返回的json數(shù)據(jù)格式不對,不是json的,我就去修改AFNetworking的responseSerializer返回的序列化器,發(fā)現(xiàn)怎么改怎么不對,各種嘗試無果之后,我打印了一下元數(shù)據(jù),發(fā)現(xiàn)返回的居然是Html格式的消息,消息內(nèi)容大概是服務器請求失敗了,好吧,搞了半天是我請求錯誤了。我驗證半天發(fā)現(xiàn)參數(shù)沒什么問題啊,于是我就打印了一下用ASI請求body的數(shù)據(jù)發(fā)現(xiàn)是這樣子的:mid=10&method=userInfo&dateInt=20160818,我再打印了一下我用AFNetworking拼接成的body的數(shù)據(jù)格式居然是這樣子的{"mid":"11","method":"userInfo","dateInt":"20160818"},好吧,現(xiàn)在我知道是哪里有問題了,因為之前傳的參數(shù)都是json格式的所以沒問題,誰知道這個服務器接受的數(shù)據(jù)不是json格式的,所以請求失敗了。那我就需要修改AFNetworking的requestSerializer了。

requestSerializer

關(guān)于 requestSerializer它就是AFNetworking參數(shù)編碼的序列化器,它一共有三種編碼格式:

  1. AFHTTPRequestSerializer:第一種是普通的http的編碼格式也就是mid=10&method=userInfo&dateInt=20160818,這種格式的。
  2. AFJSONRequestSerializer:第二種也是json編碼格式的,也就是編碼成{"mid":"11","method":"userInfo","dateInt":"20160818"}
  3. AFPropertyListRequestSerializer:第三種沒用過,但是看介紹接編碼成pislt格式的參數(shù)

看了上面的介紹應該能明白到底該如何修改了,下面貼上我的修改過程。

解決辦法

修改前:

_sharedCBClient = [[AFAppCBNetAPIClient alloc] initWithBaseURL:baseURL];
    //拼接參數(shù)的序列化器,使用的錯誤的序列化器
    _sharedCBClient.requestSerializer = [AFJSONRequestSerializer serializer];
    //返回數(shù)據(jù)的序列化器
    _sharedCBClient.responseSerializer = [AFJSONResponseSerializer serializer];

修改后:

_sharedCBClient = [[AFAppCBNetAPIClient alloc] initWithBaseURL:baseURL];
    //拼接參數(shù)的序列化器,使用的正確的序列化器
    _sharedCBClient.requestSerializer = [AFHTTPRequestSerializer serializer];
    //返回數(shù)據(jù)的序列化器
    _sharedCBClient.responseSerializer = [AFJSONResponseSerializer serializer];
_sharedCBClient = [[AFAppCBNetAPIClient alloc] initWithBaseURL:baseURL];
    //拼接參數(shù)的序列化器,使用的正確的序列化器
    _sharedCBClient.requestSerializer = [AFHTTPRequestSerializer serializer];
    //返回數(shù)據(jù)的序列化器
    _sharedCBClient.responseSerializer = [AFJSONResponseSerializer serializer];

到這里我的問題也就解決了,一個小小的問題困擾了很久真是不應該,以后應該多跟后臺溝通溝通,要不出錯了也不知道錯在哪里,

感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!

相關(guān)文章

  • iOS手勢識別的詳細使用方法(拖動,縮放,旋轉(zhuǎn),點擊,手勢依賴,自定義手勢)

    iOS手勢識別的詳細使用方法(拖動,縮放,旋轉(zhuǎn),點擊,手勢依賴,自定義手勢)

    這篇文章主要介紹了iOS手勢識別的詳細使用方法(拖動,縮放,旋轉(zhuǎn),點擊,手勢依賴,自定義手勢),具有一定的參考價值,有需要的可以參考一下。
    2016-11-11
  • iOS實現(xiàn)視頻和圖片的上傳思路

    iOS實現(xiàn)視頻和圖片的上傳思路

    這篇文章主要介紹了iOS實現(xiàn)視頻和圖片的上傳思路,本文分步驟給大家介紹的非常詳細,具有參考借鑒價值,需要的朋友可以參考下
    2017-03-03
  • iOS下拉、上拉刷新控件的封裝

    iOS下拉、上拉刷新控件的封裝

    這篇文章主要為大家詳細介紹了iOS下拉、上拉刷新控件的封裝,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-04-04
  • iOS讓軟鍵盤消失的簡單方法

    iOS讓軟鍵盤消失的簡單方法

    一些文本輸入控件等待輸入時會彈出軟鍵盤,我們可以設置這些控件的Did End On Exit之類的回調(diào)方法以在用戶點擊軟鍵盤上的done或return之列的按鍵時收起鍵盤
    2016-02-02
  • iOS中正向、逆向傳值的方法總結(jié)

    iOS中正向、逆向傳值的方法總結(jié)

    這篇文章主要給大家總結(jié)介紹了關(guān)于iOS中正向、逆向傳值的相關(guān)資料,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2018-08-08
  • iOS 10自定義相機功能

    iOS 10自定義相機功能

    這篇文章主要為大家詳細介紹了iOS 10自定義相機功能,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-04-04
  • iOS之UIWebView無法獲取web標題的解決方法

    iOS之UIWebView無法獲取web標題的解決方法

    這篇文章主要為大家詳細介紹了iOS之UIWebView無法獲取web標題的解決方法,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-07-07
  • IOS 字符串常用處理詳細介紹

    IOS 字符串常用處理詳細介紹

    這篇文章主要介紹了IOS 字符串常用處理詳細介紹的相關(guān)資料,需要的朋友可以參考下
    2017-02-02
  • 簡單談談Core Animation 動畫效果

    簡單談談Core Animation 動畫效果

    下面小編就為大家?guī)硪黄唵握務凜ore Animation 動畫效果。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-06-06
  • ios實現(xiàn)app強制更新功能

    ios實現(xiàn)app強制更新功能

    本篇文章主要介紹了ios實現(xiàn)app強制更新功能,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-05-05

最新評論