我想用POST / PUT发送JSON我不知道它是否同样的想法。 这是json。 { “作家”: “迈赫迪”, “电子邮件”: “email@hotmail.fr”, “消息”: “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“测试restful webservice”时它工作,这是wat http监视器显示
状态:201(已创建)
时间戳:2011年5月21日星期六20:30:33 GMT
发送: { “作者”: “梅迪”, “电子邮件”: “email@hotmail.fr”, “消息”: “Hello2”}
收到:
请求:POST http://localhost:8080/TRESTful/resources/messages/? 时间戳= 1306009225785
状态:201(已创建)
时间戳:2011年5月21日星期六20:20:25 GMT
发送: { “作者”: “梅迪”, “电子邮件”: “email@hotmail.fr”, “消息”: “Hello2”}
但现在我不知道如何使用ASIHttpRequest。首先我应该[请求setRequestMethod:@“PUT”]; ?我应该像字符串一样发送所有json,或者用hey键放置每个值,如下所示:
ASIFormDataRequest *request = [ASIFormDataRequest requestWithURL:url];
[request setPostValue:@"Ben" forKey:@"author"];
[request setPostValue:@"Copsey" forKey:@"email"];
[request setPostValue:@"Hello2" message:@"author"];
[request startSynchronous];
或者我应该将JSON字符串放在一个值中?
请帮助。
答案 0 :(得分:2)
如果你想发送一个json,你有两个选择:
a)将其发送到文件中 - 如果你在json中有很多数据,你可能希望将它存储在服务器上以便以后解析。
b)以字符串形式发送一个值 - 如果您的json很短并且您想立即解析它,请使用此方法
修改强>
c)如果要跳过服务器上的解析并直接访问数据,请将其作为单独的值发送。如果数据很少,则应该使用此方法。