【发布时间】:2013-04-16 10:07:45
【问题描述】:
我正在 Objective-c 中构建一个 JSON 帖子并将其发送到 ASP.NET MVC 控制器。
我正在按如下方式构建 NSMutableURLRequest:
request = [[NSMutableURLRequest alloc] initWithURL:url];
NSString* jsonRequest = [NSString stringWithFormat: @"{\"collection\":\"images\",\"id\":\"%@\",\"objectjson\":%@}",response.id,response.json];
NSData *requestData = [NSData dataWithBytes:[jsonRequest UTF8String] length:[jsonRequest length]];
[request setHTTPMethod:@"POST"];
[request setValue:@"application/json" forHTTPHeaderField:@"Accept"];
[request setValue:@"application/json" forHTTPHeaderField:@"Content-Type"];
[request setValue:[NSString stringWithFormat:@"%d", [requestData length]] forHTTPHeaderField:@"Content-Length"];
[request setHTTPBody: requestData];
然后我按如下方式发送请求:
NSOperationQueue *backgroundQueue = [[NSOperationQueue alloc] init];
[NSURLConnection sendAsynchronousRequest:request queue:backgroundQueue completionHandler:^(NSURLResponse *response, NSData *data, NSError *error)
{ ... completion code goes here
这在大多数情况下都很好用。但是,对于非常大的 JSON 字符串,我偶尔会收到一个 Web 服务错误,其中 Web 服务报告它在 JSON 中遇到文件结束标记。 JSON 似乎被截断了。
我将 JSON 发送到 ASP.NET MVC 控制器。
有没有人对可能发生的事情有什么智慧之言?是否有任何 ASP.NET Web 配置设置可能我需要调整以防止出现此问题。
我不明白的一点是为什么它是一个间歇性的问题。
【问题讨论】:
-
有同样的问题。网上什么都没查到。不确定是 iOS 还是 IIS……我个人倾向于责怪 IIS,但谁知道呢……
-
也许这个链接有帮助:stackoverflow.com/questions/12662282/…
-
在我的服务器上进行了一些登录,发现内容长度标头确实是我的 iOS 应用程序设置的正确值,但实际流包含的字节数少于内容长度。有些字节在传输过程中一定会丢失,我猜可能是因为 3G 连接。除了告诉客户再试一次之外,不确定其他解决方法。
标签: objective-c asp.net-mvc json nsurlconnection nsurlrequest