отправьте JSON с POST в веб-службу Restful - PullRequest
0 голосов
/ 22 мая 2011

Я хочу отправить JSON с POST / PUT. Не знаю, так ли это?Это Джонс.{"author": "mehdi", "email": "email@hotmail.fr", "message": "Hello2"} это мой wadl.

<resource path="/messages/"><method id="get" name="GET"><request><param name="start" style="query" type="xs:int" default="0"/><param name="max" style="query" type="xs:int" default="10"/><param name="expandLevel" style="query" type="xs:int" default="1"/><param name="query" style="query" type="xs:string" default="SELECT e FROM Message e"/></request><response><representation mediaType="application/xml"/><representation mediaType="application/json"/></response></method><method id="post" name="POST"><request><representation mediaType="application/xml"/><representation mediaType="application/json"/></request><response><representation mediaType="*/*"/></response></method><resource path="{keyid}/"><param name="keyid" style="template" type="xs:int"/><method id="get" name="GET"><request><param name="expandLevel" style="query" type="xs:int" default="1"/></request><response><representation mediaType="application/json"/></response></method></resource></resource>

Когда я пытаюсь опубликовать сообщение с netbeans"Test restful webservice" работает, и вот что показывает http-монитор

Статус: 201 (Создано)

Отметка времени: сб, 21 мая 2011 г. 20:30:33GMT

Отправлено: {"author": "mehdi", "email": "email@hotmail.fr", "message": "Hello2"}

Получено:


Запрос: POST http://localhost:8080/TRESTful/resources/messages/? отметка времени = 1306009225785

Статус: 201 (создано)

Отметка времени: сб, 21 мая 2011 г. 20:20:25 GMT

Отправлено: {"author": "mehdi", "email": "email@hotmail.fr", "message": "Hello2"}

Но теперь я незнать, как это с ASIHttpRequest .first я должен сделать [запрос setRequestMethod: @ "PUT"];?и я должен отправить все JSON как строку, или поставить каждое значение с ключом эй, как это:

ASIFormDataRequest *request = [ASIFormDataRequest requestWithURL:url];
[request setPostValue:@"Ben" forKey:@"author"];
[request setPostValue:@"Copsey" forKey:@"email"];
[request setPostValue:@"Hello2" message:@"author"];
[request startSynchronous];

или я должен поместить строку JSON в одно значение?

Помогите пожалуйста.

1 Ответ

2 голосов
/ 22 мая 2011

Ну, если вы хотите отправить JSON, у вас есть два варианта:

а) Отправить в файл -Используйте это, если у вас много данных в json и вы можете сохранить их на сервере для последующего анализа.

б) Отправить его как строку в одном значении -Используйте это, если у вас короткий JSON, и вы хотите сразу его проанализировать

EDIT

в) Отправьте его как отдельные значения, если вы хотите пропустить синтаксический анализ на сервере и получить прямой доступ к данным. Это следует использовать, если данных мало.

...