AFNetwork2.0在報錯1016,3840的解決方案及一些感悟,afnetwork2.03840

來源:互聯網
上載者:User

AFNetwork2.0在報錯1016,3840的解決方案及一些感悟,afnetwork2.03840

最近在學習AFNetwork,非常好的網路架構,能節省很多時間。不過請求網路資料時報錯1016,3840.

這兩個錯誤網上解決方案很多,http://blog.csdn.net/huifeidexin_1/article/details/38844535,這篇部落格的解決方案非常好。也確實起了效果,不過接下來問題來了。

 

比如我要實現最容易的登入功能,用http協議,我把帳號密碼傳給伺服器,如果驗證成功,它傳個1給我就行了。

+(BOOL)getLoginByUser:(NSString *)username andPass:(NSString *)password{    AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager];    manager.requestSerializer = [AFHTTPRequestSerializer serializer];    manager.responseSerializer = [AFHTTPResponseSerializer serializer];         NSDictionary *dict = @{@"nickName":username,@"password":password};    [manager GET:url parameters:dict success:^(AFHTTPRequestOperation *operation, id responseObject) {        NSData *doubi = responseObject;        NSString *shabi =  [[NSString alloc]initWithData:doubi encoding:NSUTF8StringEncoding];        NSLog(@"%@",shabi);        } failure:^(AFHTTPRequestOperation *operation, NSError *error) {        NSLog(@"Error: %@", error);    }];        return YES;}

因為加了"text/html",所以傳過來的是一個html頁面,1在body裡。即...<body>1</body>...

但是我只要1就行了,如果自己在寫演算法把1提取出來就太詭異了,並不可行。

 

後來才發現是我一開始就理解有問題。上面的方法處理的就是伺服器傳"text/html"的解決方案。用於爬蟲或者web直接顯示頁面等情況。

而我要的就是json資料

{"result": "1"}

這也正符合了AFNetwork預設支援的類型,其實ios開發不怎麼用到"text/html"類型。大部分情況下是json,所以這也是AFNetwork預設支援的。

這又回到了剛開始的時候,報了1016錯誤。

其實錯誤是伺服器的原因,伺服器要指定格式,http response的content-type。它要設定為json,那麼就不會報1016錯誤了。

+(BOOL)getLoginByUser:(NSString *)username andPass:(NSString *)password{    AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager];         NSDictionary *dict = @{@"nickName":username,@"password":password};    [manager GET:url parameters:dict success:^(AFHTTPRequestOperation *operation, id responseObject) {        NSString *responseValue = [responseObject objectForKey:@"result"];        NSLog(@"%@",responseValue);            } failure:^(AFHTTPRequestOperation *operation, NSError *error) {        NSLog(@"Error: %@", error);    }];        return YES;}

 這個輸出結果就是1。

所以遇到了錯誤還是要多想想,即然自己要的就是json資料,幹嘛還要add"text/html",應該要想到其實是服務端的問題。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.