POST一个JSON格式的数据给Restful服务实例详解

5年以前  |  阅读数:773 次  |  编程语言:PHP 

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


    JSONObject jsonObj = new JSONObject();
    jsonObj.put("username", username);
    jsonObj.put("apikey", apikey);
    // Create the POST object and add the parameters
    HttpPost httpPost = new HttpPost(url);
    StringEntity entity = new StringEntity(jsonObj.toString(), HTTP.UTF_8);
    entity.setContentType("application/json");
    httpPost.setEntity(entity);
    HttpClient client = new DefaultHttpClient();
    HttpResponse response = client.execute(httpPost);

用curl可执行如下命令:


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

用jQuery:


    $.ajax({
     url:url,
     type:"POST",
     data:data,
     contentType:"application/json; charset=utf-8",
     dataType:"json",
     success: function(){
      ...
     }
    })

PHP用cUrl实现:


    $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); 

感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

Copyright© 2013-2020

All Rights Reserved 京ICP备2023019179号-8