Я пытаюсь загрузить очень большую строку JSON на сервер, используя NSMutableURLRequest
. Если длина postData
равна 239741
, то он дает следующий ответ:
{ status code: 404, headers {
Connection = "keep-alive";
"Content-Encoding" = gzip;
"Content-Type" = "text/html";
Date = "Fri, 04 Dec 2015 09:12:30 GMT";
Server = "nginx/1.4.6 (Ubuntu)";
"Transfer-Encoding" = Identity;
} }
Но если я попытаюсь отправить строку JSON на сервер с длиной postData
206044, данные будут успешно загружены на сервер.
Как загрузить на сервер строку JSON неограниченной длины?
Полный код, приведенный ниже:
NSString *urlString = [NSString stringWithFormat:@“URL Here”];
NSData *postData = [[NSString stringWithFormat:@"data=%@",postValues] dataUsingEncoding:NSASCIIStringEncoding allowLossyConversion:YES];
NSString *postLength = [NSString stringWithFormat:@"%d", (int)[postData length]];
NSMutableURLRequest *request = [[NSMutableURLRequest alloc] init];
[request setValue:[NSString stringWithFormat:@"Token %@",AuthToken] forHTTPHeaderField:@"Authorization"];
[request setURL:[NSURL URLWithString:urlString]];
[request setHTTPMethod:@"POST"];
[request setTimeoutInterval:50];
[request setValue:postLength forHTTPHeaderField:@"Content-Length"];
[request setValue:@"application/x-www-form-urlencoded" forHTTPHeaderField:@"Content-Type"];
NSError *error1 = nil;
NSHTTPURLResponse *response=nil;
NSData *responseData=[NSURLConnection sendSynchronousRequest:request returningResponse:&response error:&error1];
NSLog(@"response is %@",response);
NSString* responseString=[[NSString alloc] initWithData:responseData encoding:NSUTF8StringEncoding];
NSLog(@"response string is %@",responseString);
if (responseData) {
NSDictionary *json = [NSJSONSerialization JSONObjectWithData:responseData options:kNilOptions error:&error1];
return json;
}
else
NSLog(@"Error : %@",error1.description);
URL
, работает он или нет? - person Nimit Parekh   schedule 04.12.2015WS
. - person Nimit Parekh   schedule 04.12.2015