您的位置:首页 > Web前端 > JavaScript

如何POST一个JSON格式的数据给Restful服务

2015-07-03 18:36 771 查看
转: http://blog.csdn.net/iefreer/article/details/8280345
在Android/java平台上实现POST一个json数据:
<code><span class="typ">JSONObject</span><span class="pln"> jsonObj </span><span class="pun">=</span><span class="pln"> </span><span class="kwd">new</span><span class="pln"> </span><span class="typ">JSONObject</span><span class="pun">();</span><span class="pln">
jsonObj</span><span class="pun">.</span><span class="pln">put</span><span class="pun">(</span><span class="str">"username"</span><span class="pun">,</span><span class="pln"> username</span><span class="pun">);</span><span class="pln">
jsonObj</span><span class="pun">.</span><span class="pln">put</span><span class="pun">(</span><span class="str">"apikey"</span><span class="pun">,</span><span class="pln"> apikey</span><span class="pun">);</span><span class="pln">
</span><span class="com">// Create the POST object and add the parameters</span><span class="pln">
</span><span class="typ">HttpPost</span><span class="pln"> httpPost </span><span class="pun">=</span><span class="pln"> </span><span class="kwd">new</span><span class="pln"> </span><span class="typ">HttpPost</span><span class="pun">(</span><span class="pln">url</span><span class="pun">);</span><span class="pln">
</span><span class="typ">StringEntity</span><span class="pln"> entity </span><span class="pun">=</span><span class="pln"> </span><span class="kwd">new</span><span class="pln"> </span><span class="typ">StringEntity</span><span class="pun">(</span><span class="pln">jsonObj</span><span class="pun">.</span><span class="pln">toString</span><span class="pun">(),</span><span class="pln"> HTTP</span><span class="pun">.</span><span class="pln">UTF_8</span><span class="pun">);</span><span class="pln">
entity</span><span class="pun">.</span><span class="pln">setContentType</span><span class="pun">(</span><span class="str">"application/json"</span><span class="pun">);</span><span class="pln">
httpPost</span><span class="pun">.</span><span class="pln">setEntity</span><span class="pun">(</span><span class="pln">entity</span><span class="pun">);</span><span class="pln">
</span><span class="typ">HttpClient</span><span class="pln"> client </span><span class="pun">=</span><span class="pln"> </span><span class="kwd">new</span><span class="pln"> </span><span class="typ">DefaultHttpClient</span><span class="pun">();</span><span class="pln">
</span><span class="typ">HttpResponse</span><span class="pln"> response </span><span class="pun">=</span><span class="pln"> client</span><span class="pun">.</span><span class="pln">execute</span><span class="pun">(</span><span class="pln">httpPost</span><span class="pun">);</span></code>


用curl可执行如下命令:

curl -l -H "Content-type: application/json" -X POST -d '{"phone":"13521389587","password":"test"}' http://domain/apis/users.json
用jQuery:

<code><span class="pln">$</span><span class="pun">.</span><span class="pln">ajax</span><span class="pun">({</span><span class="pln">
url</span><span class="pun">:</span><span class="pln">url</span><span class="pun">,</span><span class="pln">
type</span><span class="pun">:</span><span class="str">"POST"</span><span class="pun">,</span><span class="pln">
data</span><span class="pun">:</span><span class="pln">data</span><span class="pun">,</span><span class="pln">
contentType</span><span class="pun">:</span><span class="str">"application/json; charset=utf-8"</span><span class="pun">,</span><span class="pln">
dataType</span><span class="pun">:</span><span class="str">"json"</span><span class="pun">,</span><span class="pln">
success</span><span class="pun">:</span><span class="pln"> </span><span class="kwd">function</span><span class="pun">(){</span><span class="pln">
</span><span class="pun">...</span><span class="pln">
</span><span class="pun">}</span><span class="pln">
</span><span class="pun">})</span></code>


PHP用cUrl实现:

[php] view
plaincopy

$data = array("name" => "Hagrid", "age" => "36");

$data_string = json_encode($data);

$ch = curl_init('http://api.local/rest/users');

curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");

curl_setopt($ch, CURLOPT_POSTFIELDS, $data_string);

curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

curl_setopt($ch, CURLOPT_HTTPHEADER, array(

'Content-Type: application/json',

'Content-Length: ' . strlen($data_string))

);

$result = curl_exec($ch);

by iefreer

版权声明:本文为博主原创文章,未经博主允许不得转载。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: