NSMutableURLRequest неполной длины в PHP - PullRequest
0 голосов
/ 26 мая 2011

У меня очень раздражающая проблема, которую я пытаюсь решить.У меня есть приложение для iPhone, которое отправляет на сервер несколько форм данных.Серверная часть обрабатывает данные и отвечает PHP.При небольших объемах данных это нормально, но один из запросов довольно большой, и это не так хорошо.Запросы кажутся хорошо закодированными, с правильной длиной, даже установлен заголовок Content-Length.Тем не менее я получаю неполный (буквально отрубленный) результат в PHP.

Вот некоторый код:

NSString *requestString = [NSString stringWithFormat:@"json=%@", [params JSONFragment], nil];
NSLog(@"%@", requestString);
NSLog(@"%u", [requestString length]);
NSData *requestData = [requestString dataUsingEncoding:NSUTF8StringEncoding];
//NSData *requestData = [NSData dataWithBytes: [requestString UTF8String] length: strlen([requestString UTF8String])]; //[requestString UTF8String]
//NSData *requestData = [NSData dataWithBytes: requestString length: [requestString length]]; //[requestString UTF8String]
//NSData *requestData = [NSData dataWithBytes:[requestString UTF8String] length:[requestString lengthOfBytesUsingEncoding:NSUTF8StringEncoding]];

NSMutableURLRequest *request = [[NSMutableURLRequest alloc] initWithURL: [NSURL URLWithString: @"https://radarromance.com/api/index.php"]];
[request setHTTPMethod: @"POST"];
[request setHTTPBody: requestData];
[request setValue:@"application/x-www-form-urlencoded" forHTTPHeaderField:@"content-type"];
[request setValue:[NSString stringWithFormat:@"%u", [requestString length], nil] forHTTPHeaderField:@"content-length"];

Считайте фактические данные правильно отформатированной строкой JSON с длиной>4000 знаков.Я провел крошечный тест, чтобы увидеть, имеет ли объект NSData правильную длину, и он имеет.Со стороны iPhone, я полагаю, все в порядке.

Однако сторона PHP показывает только часть запроса, поэтому она не завершена.Значение post_max_size составляет 16M, что должно быть достаточно.

Как это возможно?Что может быть не так?Любая помощь здесь с благодарностью!

С уважением,

Reinder

Ответы [ 2 ]

0 голосов
/ 26 мая 2011

У меня тоже была эта проблема с очисткой сайтов другими http-клиентами, но, возможно, решение то же самое. У меня были неполные запросы, потому что мой тайм-аут был установлен на низкое значение, а загрузка (или публикация в вашем случае) заняла много времени, поэтому мои запросы были бы неполными. Может быть стоит что-то проверить!

0 голосов
/ 26 мая 2011
@"application/x-www-form-urlencoded"

попробуйте с приложением / JSON

...