iOS post 一個數(shù)組給服務(wù)器

項(xiàng)目需求

從本地?cái)?shù)據(jù)庫里拿出15條記錄,上傳給服務(wù)器。

也就是上傳一個數(shù)組。這個數(shù)組里里面有15個對象。每個對象都是一個NSDictionary 。

需求分析

大部分情況下,上傳數(shù)據(jù)給服務(wù)器,都是使用NSDictionary。

基本會是這樣的格式:

{
id : @"123";
token :@"01";
}

基本都會是一個字典,都是鍵值對。

現(xiàn)在需要上傳一個數(shù)組。

我們應(yīng)該是下面這個格式:

{
id : @"123";
token :@"01";
data : 需要上傳的數(shù)組dataArr。
}

方案解決

需要上傳的數(shù)組,我們是不能直接傳遞一個NSArray的。
必須向下面這樣轉(zhuǎn)成JSON字符串。

NSError *error;
NSData *jsonData = [NSJSONSerialization     dataWithJSONObject:dataArr options:NSJSONWritingPrettyPrinted   error:&error];//此處dataArr參數(shù)的key為"data"的數(shù)組
NSString *jsonString = [[NSString alloc]    initWithData:jsonData encoding:NSUTF8StringEncoding];

組合之后的上傳字典應(yīng)該是這樣:

{
id : @"123";
token :@"01";
data : JsonString。
}

AFHTTPRequestOperationManager *manager =    [AFHTTPRequestOperationManager manager];

[manager POST:urlStr  parameters:jsonDic success:^(AFHTTPRequestOperation * _Nonnull operation, id  _Nonnull responseObject) {
   //上傳成功
    }
} failure:^(AFHTTPRequestOperation * _Nullable operation, NSError * _Nonnull error) {
    NSLog(@"上傳信息失敗%@",error);
}];

易錯點(diǎn)提醒

在轉(zhuǎn)成JsonString 的時候,一定不要犯下面這個錯誤。

如果需要上傳的參數(shù)是這樣的字典:

{
data : 需要上傳的dataArr。
}

你要明確一點(diǎn),post 的 parameters 永遠(yuǎn)是一個字典。

你不能這樣做(把字典的key data ,也轉(zhuǎn)成了JSON字符串里面的)。

下面是錯誤示范(多數(shù)人會死在這個上面)

NSDictionary *jsonDic = @{ data : 需要上傳的dataArr};
NSData *jsonData = [NSJSONSerialization     dataWithJSONObject:jsonDic options:NSJSONWritingPrettyPrinted   error:&error];
NSString *jsonString = [[NSString alloc]    initWithData:jsonData encoding:NSUTF8StringEncoding];

AFHTTPRequestOperationManager *manager =    [AFHTTPRequestOperationManager manager];

[manager POST:urlStr  parameters:jsonData  success:^(AFHTTPRequestOperation * _Nonnull operation, id  _Nonnull responseObject) {
   //上傳成功
    }
} failure:^(AFHTTPRequestOperation * _Nullable operation, NSError * _Nonnull error) {
    NSLog(@"上傳信息失敗%@",error);
}];

參考鏈接:
http://www.tuicool.com/articles/bUZv2y

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

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

  • iOS網(wǎng)絡(luò)架構(gòu)討論梳理整理中。。。 其實(shí)如果沒有APIManager這一層是沒法使用delegate的,畢竟多個單...
    yhtang閱讀 5,489評論 1 23
  • iOS開發(fā)系列--網(wǎng)絡(luò)開發(fā) 概覽 大部分應(yīng)用程序都或多或少會牽扯到網(wǎng)絡(luò)開發(fā),例如說新浪微博、微信等,這些應(yīng)用本身可...
    lichengjin閱讀 4,034評論 2 7
  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,544評論 19 139
  • 人是一種發(fā)展,是一種對未來的追求。沒有對未來生活的追求,就不會有眼下的行動。眼下是一個發(fā)展的時代,是人們快樂工作和...
    用寫創(chuàng)造閱讀 228評論 0 0
  • 當(dāng)一個人走在寂寞的夜里,外界的五光十色都與你無關(guān),喧囂和吵鬧,都離你遠(yuǎn)遠(yuǎn)的。 心里堆著好多事,或喜或悲,調(diào)和成不明...
    沐曦_dawn閱讀 594評論 0 0

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