Максимальный размер параметра для NSData / setHTTPBody?

Приложение для iPad отправляет список файлов в виде строкового параметра, fileList к веб-методу, как это:

NSString *post = [NSString stringWithFormat:@"sessionID=%@&fileList=%@&dateTime=%@&userID=%@", sessionID, fileList, timeOpened, userID];    
NSData *postData = [post dataUsingEncoding:NSASCIIStringEncoding allowLossyConversion:YES];
NSString *comparisonURLString = SERVER_COMPARE_URL_STRING;
NSURL *comparisonURL = [NSURL URLWithString:comparisonURLString];
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:comparisonURL];

NSString *postLength = [NSString stringWithFormat:@"%d", [postData length]];

[request setHTTPMethod:@"POST"];
[request addValue:postLength forHTTPHeaderField:@"Content-Length"];
[request setHTTPBody:postData];

Когда список файлов превышает определенный размер, он кажется усеченным. Я не смог найти ничего о максимальном размере в документации Apple. Кроме того, кажется, что последующие параметры принимаются нормально, но прежде чем я обесценил это как возможный источник проблемы, мне было интересно, если кто-нибудь знает, есть ли такое ограничение?

Сервер работает под управлением IIS7, а webConfig maxRequestLength установлен на 1048576.

-РЕДАКТИРОВАТЬ-

Источник проблемы:

Я создал веб-метод, который принимает только весь POST в качестве параметра, и он удаляет все после амперсанда (&), поэтому я думаю, что это может быть проблема, а не размер параметра.

1 ответ

Решение

Я думаю, что проблема может отсутствовать Content-Type Поле заголовка HTTP-запроса:

[request setValue:@"application/x-www-form-urlencoded; charset=UTF-8" forHTTPHeaderField:@"Content-Type"];

Также используйте UTF-8 для кодирования полезной нагрузки:

NSData *postData = [post dataUsingEncoding:NSUTF8StringEncoding allowLossyConversion:YES];
Другие вопросы по тегам