Максимальный размер параметра для 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];