我在objective-c中構建JSON文章並將其發送到ASP.NET MVC控制器。當通過NSMutableURLRequest發送到APS.NET MVC控制器時截斷JSON
我建立了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,但誰知道... – jjxtra
也許這個鏈接幫助:http://stackoverflow.com/questions/12662282/content-length-of-http-request -body-size/12832707#12832707 – jjxtra
在我的服務器上進行了一些日誌記錄,發現內容長度標頭確實是由我的iOS應用程序設置的正確值,但實際流包含的字節數少於內容長度。有些字節必須在傳輸過程中丟失,可能是由於3G連接是我的猜測。除了告訴客戶再試一次之外,不清楚是否有工作。 – jjxtra