向服务器发送多个 json 数据 - ios
Posted
技术标签:
【中文标题】向服务器发送多个 json 数据 - ios【英文标题】:Send multiple json data to server - ios 【发布时间】:2015-08-28 05:14:35 【问题描述】:我需要将 json 数据发送到服务器。我能够将 json 对象发送到服务器。但我想将多个 json 对象发送到服务器,如下所示。
Json1:
"Comments" : "test”,
"user_id" : “test”,
"EdDate" : "08\/26\/2015 03:16:58 PM",
"StDate" : "08\/26\/2015 03:16:20 PM",
"latitude" : "",
"longitude" : "",
"sample" : [
"quantity" : “1”,
]
json 2:
"Comments" : "test”,
"user_id" : “test”,
"EdDate" : "08\/26\/2015 04:11:51 PM",
"StDate" : "08\/26\/2015 04:11:21 PM",
"latitude" : "",
"longitude" : "",
"sample" : [
"quantity" : “1”,
]
我需要一个一个发送。我正在使用以下代码,但只有一次我得到正确的响应。
NSOperationQueue *mainQueue = [[NSOperationQueue alloc] init];
for( int i=0 ; i < [tempJsonFromDB count]; i++)
tempjsondata = [tempjsondata stringByAppendingString:tempJsonFromDB[i]];
NSMutableURLRequest *request = [[NSMutableURLRequest alloc] init];
[request setURL:[NSURL URLWithString:url]];
[request setValue:@"application/json" forHTTPHeaderField:@"Accept"];
[request setValue:@"application/json" forHTTPHeaderField:@"Content-Type"];
[request setHTTPMethod:@"POST"];
[request setHTTPBody:[tempjsondata dataUsingEncoding:NSUTF8StringEncoding]];
[mainQueue setMaxConcurrentOperationCount:5];
[NSURLConnection sendAsynchronousRequest:request queue:mainQueue completionHandler:^(NSURLResponse *response,
NSData *urlData, NSError *requestError)
NSString* newStr1 = [NSString stringWithUTF8String:[urlData bytes]];
NSLog(@“string%@“,newStr1);
];
NSURLConnection *connection = [[NSURLConnection alloc] initWithRequest:request delegate:self];
[connection start];
【问题讨论】:
您能否描述一下请求的其余部分会发生什么,您在 completionHandler 中是否收到错误?如果是,错误是什么? 这是你的数组 tempJsonFromDB @Abd Al-rhman Taher Badary 我第一次得到“真实”,但在我得到一些网络内容之后。 @Anbu.Karthik tempJsonFromDB 是我的准确 json。 看到这个链接可能对你有帮助***.com/questions/12299965/… 【参考方案1】:一个视图提示:
这种方法可能只适用于同时排入队列的少量请求,例如最多 10 个。
为了避免潜在的并发问题,请将[mainQueue setMaxConcurrentOperationCount
设置为1
。注意:目前您的示例中没有问题,但您的生产代码可能必须访问一些共享变量 - 您可能会在其中遇到数据竞争。确保您使用专用的串行队列,将执行对该共享变量的所有访问。 (您也可以调度到主队列或专用调度队列)。
请注意,此设置不会改变并发活动 HTTP 请求的数量。这仅适用于代表。
打印出委托中的所有错误消息,以及响应的状态代码和 Content-type 标头。
当您从服务器打印出返回的内容时,请考虑这可能是具有任意编码的 html 代码。当服务器返回 2xx 以外的状态时,通常会出现这种情况 - 即使您明确指定了 Accept
标头。虽然这是服务器端的错误,但您必须处理它。遗憾的是,这是一种非常常见的服务器行为。
您可以使用NSURLSession
改进代码。
如果您有大量请求,您应该使用能够处理大量并发请求的第三方库来改进您的代码。
【讨论】:
以上是关于向服务器发送多个 json 数据 - ios的主要内容,如果未能解决你的问题,请参考以下文章