Home > php教程 > php手册 > body text

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

WBOY
Release: 2016-06-13 08:54:33
Original
829 people have browsed it

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

在Android/java平台上实现POST一个json数据:

<code><span class="typ">JSONObject<span class="pln"> jsonObj <span class="pun">=<span class="pln"> <span class="kwd">new<span class="pln"> <span class="typ">JSONObject<span class="pun">();<span class="pln">
jsonObj<span class="pun">.<span class="pln">put<span class="pun">(<span class="str">"username"<span class="pun">,<span class="pln"> username<span class="pun">);<span class="pln">
jsonObj<span class="pun">.<span class="pln">put<span class="pun">(<span class="str">"apikey"<span class="pun">,<span class="pln"> apikey<span class="pun">);<span class="pln">
<span class="com">// Create the POST object and add the parameters<span class="pln">
<span class="typ">HttpPost<span class="pln"> httpPost <span class="pun">=<span class="pln"> <span class="kwd">new<span class="pln"> <span class="typ">HttpPost<span class="pun">(<span class="pln">url<span class="pun">);<span class="pln">
<span class="typ">StringEntity<span class="pln"> entity <span class="pun">=<span class="pln"> <span class="kwd">new<span class="pln"> <span class="typ">StringEntity<span class="pun">(<span class="pln">jsonObj<span class="pun">.<span class="pln">toString<span class="pun">(),<span class="pln"> HTTP<span class="pun">.<span class="pln">UTF_8<span class="pun">);<span class="pln">
entity<span class="pun">.<span class="pln">setContentType<span class="pun">(<span class="str">"application/json"<span class="pun">);<span class="pln">
httpPost<span class="pun">.<span class="pln">setEntity<span class="pun">(<span class="pln">entity<span class="pun">);<span class="pln">
<span class="typ">HttpClient<span class="pln"> client <span class="pun">=<span class="pln"> <span class="kwd">new<span class="pln"> <span class="typ">DefaultHttpClient<span class="pun">();<span class="pln">
<span class="typ">HttpResponse<span class="pln"> response <span class="pun">=<span class="pln"> client<span class="pun">.<span class="pln">execute<span class="pun">(<span class="pln">httpPost<span class="pun">);</span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></code>
Copy after login

 

用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 class="pun">.<span class="pln">ajax<span class="pun">({<span class="pln">
  url<span class="pun">:<span class="pln">url<span class="pun">,<span class="pln">
  type<span class="pun">:<span class="str">"POST"<span class="pun">,<span class="pln">
  data<span class="pun">:<span class="pln">data<span class="pun">,<span class="pln">
  contentType<span class="pun">:<span class="str">"application/json; charset=utf-8"<span class="pun">,<span class="pln">
  dataType<span class="pun">:<span class="str">"json"<span class="pun">,<span class="pln">
  success<span class="pun">:<span class="pln"> <span class="kwd">function<span class="pun">(){<span class="pln">
    <span class="pun">...<span class="pln">
  <span class="pun">}<span class="pln">
<span class="pun">})</span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></code>
Copy after login

 

PHP用cUrl实现:

<span> 1</span> <span>$data</span> = <span>array</span>("name" => "Hagrid", "age" => "36"<span>); 
</span><span> 2</span> <span>$data_string</span> = json_encode(<span>$data</span><span>); 
</span><span> 3</span> <span>$ch</span> = curl_init('http://api.local/rest/users'<span>); 
</span><span> 4</span> curl_setopt(<span>$ch</span>, CURLOPT_CUSTOMREQUEST, "POST"<span>); 
</span><span> 5</span> curl_setopt(<span>$ch</span>, CURLOPT_POSTFIELDS, <span>$data_string</span><span>);
</span><span> 6</span> curl_setopt(<span>$ch</span>, CURLOPT_RETURNTRANSFER, <span>true</span><span>);
</span><span> 7</span> curl_setopt(<span>$ch</span>, CURLOPT_HTTPHEADER, <span>array</span><span>( 
</span><span> 8</span> 'Content-Type: application/json',
<span> 9</span> 'Content-Length: ' . <span>strlen</span>(<span>$data_string</span><span>)) 
</span><span>10</span> <span>); 
</span><span>11</span> <span>$result</span> = curl_exec(<span>$ch</span>);
Copy after login

 

Related labels:
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Recommendations
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
About us Disclaimer Sitemap
php.cn:Public welfare online PHP training,Help PHP learners grow quickly!