Я использую NSMutableURLRequest для простой загрузки файла с iOS5 на пользовательский сервер. Когда я отправляю запрос, он распечатывает длину bodyContents, которая содержит тело запроса. Для конкретного запроса, над которым я работаю, будет указано, что длина равна 46784. Я не устанавливаю длину содержимого, так как обнаружил, что это происходит автоматически, но я все равно извлекаю информацию на случай, если она понадобится мне позже. , Заголовки, принимаемые сервером, говорят, что длина содержимого равна 46784. Когда я выполняю подсчет символов в теле на стороне сервера, он говорит, что длина тела составляет 46788, что слишком много. Я выполнил другой запрос, опять же, запрос содержал на 4 символа больше, чем я отправил.
Сначала я думал, что это должно быть на стороне сервера, просто потому, что это не имело никакого смысла. Поэтому я отправил запрос из тестовой программы, которая, как мне известно, работает на сервер, и проверил длину отправляемого тела по заголовку content-length, и они были идентичны.
Как лучше всего с этим справиться? Должен ли я вручную установить длину содержимого 4+[bodyContents length]
? Я не думаю, что это было бы то, что я хотел бы сделать, просто потому, что мне не нужно было добавлять дополнительное пространство для данных, я не знаю, что я хочу.
Вот код, который отправляет запрос
-(void)send:(id)delegate
{
bodyContents = [bodyContents stringByAppendingFormat:@"--%@--",boundry];
NSInteger length = [bodyContents length];
NSLog(@"Length is %i",length);
[request setHTTPBody:[bodyContents dataUsingEncoding:NSUTF8StringEncoding]];
NSURLConnection *connection = [[NSURLConnection alloc]initWithRequest:request delegate:delegate];
if(connection)
{
NSLog(@"Connection good");
}
else
{
NSLog(@"Connection bad");
}
}
Я установил свойство content-type запроса в методе init класса.
Есть идеи?