2012-02-03 1 views
0

, как говорит название, не может заставить его работать ...NSMutableurlrequest HTTP headerparameter, содержащий новую строку не потеряется

Ничего странного кода:

NSMutableURLRequest *request = [self prepareRequest:inUrl]; 
[request addValue:[NSString stringWithFormat:@"%@", note] forHTTPHeaderField:NOTE]; 
.... 
[[[NSURLConnection alloc] initWithRequest:request delegate:self] autorelease]; 

Таким образом, все это прекрасно работает, и он прибывает в мой магазин tomcat java spring. ЗА ИСКЛЮЧЕНИЕМ, если строка «note» содержит символы новой строки! отлично выглядит, когда я debuglog в клиенте, но на моем сервере параметр NULL.

Не уверен, что мне нужно установить urlencode или что-то избежать?

У кого-нибудь есть указатели? Благодарен за вход.

ответ

0

Убедитесь, что вы используете правильный режим при отправке данных на сервер.

метод HTTP
[request setHTTPMethod:@"POST"]; 

по умолчанию является «GET»

Update:

Вот как я обычно отправлять данные на сервер. Параметры могут различаться в зависимости от вашего типа контента.

NSData* data = [bodyString NSUTF8StringEncoding]; 
    [request setHTTPMethod:@"POST"]; 
    [request setHTTPBody:data]; 
    [request setValue:[NSString stringWithFormat:@"%d", [data length]] forHTTPHeaderField:@"Content-Length"]; 
    [request setValue:@"text/xml" forHTTPHeaderField:@"Content-Type"]; 
+0

Хм, хорошо. Я поместил все мои параметры в качестве запроса addvalue, как указано выше. Все мои серверные методы Spring-сервиса настроены как GET, поэтому более старые версии iphone/android отправят с использованием этого ... Могу ли я продолжить отправку всех параметров как «forhttpheaderfield» или мне нужно поместить значение «note» в тело сообщения ? – Mathias

+0

Не знаете, какие еще параметры вы используете. Обычно данные должны отправляться через тело с использованием метода POST. См. Обновление. Поля заголовка HTTP должны содержать вспомогательную информацию. – Davyd

 Смежные вопросы

  • Нет связанных вопросов^_^