POST на сервер не работает с iphone при использовании ASIHTTPRequest? - PullRequest
0 голосов
/ 18 октября 2011

Я пытаюсь отправить пример данных на сервер, используя REST API из ASIHTTPRequest в iphone. Когда я пытаюсь из REST-клиента из браузера Mozilla, я получаю код успеха 200. Но когда я пытаюсь с iphone, я получаю код 415, и сообщение об ошибке читается как «Невозможно использовать тип содержимого» и «Предоставленные данные запроса не в формате, приемлемом для обработки этим ресурсом».

Вот мой код,

    ASIFormDataRequest *request2 = [ASIFormDataRequest requestWithURL:myurl];   
    [request2 setUsername:User_Name ];
    [request2 setPassword:Pass_Word];
    [request2 addRequestHeader:@"Content-Type" value:@"application/xml;version=1"];
    [request2 setPostBody:[NSMutableData dataWithData:mydata dataUsingEncoding:NSUTF8StringEncoding]]];

    [request2 setRequestMethod:@"POST"];
    [request2 setDelegate:self];
    [request2 startAsynchronous];

Пожалуйста, помогите мне решить эту проблему.

Спасибо и С уважением, Винод.

Ответы [ 2 ]

2 голосов
/ 18 октября 2011

Полагаю, что-то не так с заголовком типа контента, который вы устанавливаете.Возможно, у меня возникла проблема, связанная с тем, что тип содержимого application / xml не был принят, а веб-сервер обрабатывал тип содержимого text / xml.

Один из способов отладки этого, я думаю, состоит в том, чтобы использовать что-то вроде https://addons.mozilla.org/en-US/firefox/addon/httpfox/ для просмотра необработанного HTTP-запроса, который отправляется при доступе к веб-сайту через браузер и установке тех же заголовков в ASI.

0 голосов
/ 18 октября 2011

Трудно сказать по отсутствию подробностей, но я бы сказал, что mydata -> закодированный utf8 - это не тот формат, который ожидает сервер (он должен быть отформатирован в XML?)

Добавить некоторыеПример из версии клиента REST и версии iphone для опубликованных данных.

РЕДАКТИРОВАТЬ: дополнительная информация

добавьте строку NSLog, как показано ниже, и посмотрите, соответствует ли вывод в формате XML в вашем комментарии.

ASIFormDataRequest *request2 = [ASIFormDataRequest requestWithURL:myurl];   
[request2 setUsername:User_Name ];
[request2 setPassword:Pass_Word];
[request2 addRequestHeader:@"Content-Type" value:@"application/xml;version=1"];
[request2 setPostBody:[NSMutableData dataWithData:mydata dataUsingEncoding:NSUTF8StringEncoding]]];

NSLog(@"%@", [NSMutableData dataWithData:mydata dataUsingEncoding:NSUTF8StringEncoding]);

[request2 setRequestMethod:@"POST"];
[request2 setDelegate:self];
[request2 startAsynchronous];
...