php同curl post 发送json并返回json数据实例

<?php
$arr = array(
    ‘subject‘=>‘课程‘,
    ‘loginName‘=>‘Durriya‘,
    ‘password‘=>‘123‘
);

//json也可以
$data_string =  json_encode($arr);
//普通数组也行
//$data_string = $arr;

echo $data_string;
//echo ‘<br>‘;

//curl验证成功
$ch = curl_init("http://test.api.com/");
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);
if (curl_errno($ch)) {
    print curl_error($ch);
}
curl_close($ch);
echo $result;

接上面的curl依然可以访问成功

//curl验证成功
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, "http://hzgwyw.gensee.com/integration/site/training/room/created");
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, false);
curl_setopt($curl,CURLOPT_POST,1);
curl_setopt($curl,CURLOPT_POSTFIELDS,$data_string);
curl_setopt($curl, CURLOPT_HEADER, 0);
curl_setopt($curl, CURLOPT_HTTPHEADER, array(
        ‘Content-Type: application/json; charset=utf-8‘,
        ‘Content-Length: ‘ . strlen($data_string)
    )
);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
$res = curl_exec($curl);
curl_close($curl);
echo $res;

以上是在随便一个php页面中可以实现的,在Thinkphp中所做的项目测试不支持头部的定义,然后又有一种新的curl格式也可以提交成功,但是都已数组的形式可以实现

$ch = curl_init ();
        curl_setopt ( $ch, CURLOPT_URL, $url );
        curl_setopt ( $ch, CURLOPT_POST, 1 );
        curl_setopt ( $ch, CURLOPT_HEADER, 0 );
        curl_setopt ( $ch, CURLOPT_RETURNTRANSFER, 1 );
        curl_setopt ( $ch, CURLOPT_POSTFIELDS, $data_string );
        $response = curl_exec($ch);
        if (curl_errno($ch)) {
            print curl_error($ch);
        }
        curl_close($ch);

做接口测试的过程中遇到的问题:

使用表单提交的方式:(可以是json,也可以是数组)

1)提交后将值转化为数组--->对数组转义json_encode($arr);成json数据可以实现,

2)提交后将值转化为数组--->不进行转义直接以数组的形式:两种方法都可以实现

直接对变量赋值得到数组(不可以json数据)

以上三种经验证都可以将数据输出成json格式

<?php
$data = array("subject" => "nihao",
              "startDate" => "2016-10-12 22:22:22",
              "loginName"=>‘[email protected]‘,
              "password"=>‘hzgwyw‘,
              );
$data_string = $data;

$url = "http://hzgwyw.gensee.com/integration/site/training/room/created";
$ch = curl_init ();
curl_setopt ( $ch, CURLOPT_URL, $url );
curl_setopt ( $ch, CURLOPT_POST, 1 );
curl_setopt ( $ch, CURLOPT_HEADER, 0 );
curl_setopt ( $ch, CURLOPT_RETURNTRANSFER, 1 );
curl_setopt ( $ch, CURLOPT_POSTFIELDS, $data_string );
$response = curl_exec($ch);
if (curl_errno($ch)) {
    print curl_error($ch);
}
curl_close($ch);
echo $response;

时间: 2024-09-30 05:26:22

php同curl post 发送json并返回json数据实例的相关文章

php的curl获取https加密协议请求返回json数据进行信息获取

欢迎增加php架构师之旅 群:410028331(招纳贤人-大师中)方便技术的交流 <?php header("Content-type:text/html; charset=utf-8"); function getToken($url){ $ch = curl_init(); curl_setopt($ch, CURLOPT_URL,$url); curl_setopt($ch, CURLOPT_RETURNTRANSFER,1); //相当关键,这句话是让curl_exec

jQuery通过Ajax向PHP服务端发送请求并返回JSON数据

ON(JavaScript Object Notation) 是一种轻量级的数据交换格式.易于人阅读和编写,同时也易于机器解析和生成.JSON在前后台交互的过程中发挥着相当出色的作用.请接着往下看教程. XHTML  <ul id="userlist">    <li><a href="#" rel="1">张三</a></li>    <li><a href=&quo

AJAX向服务器发送请求并返回json数据

这里想实现的功能大概是这样:类似注册时,用户名已经被注册了的情况.当用户失去焦点的时候利用AJAX发送请求到服务器端,服务器端进行数据库查询,如果有相同的用户名则页面提示用户名已被注册了,不能用,否则就通过注册. 这里用的是Jquery AJAX以及SSH框架,下面是我的实现步骤: 先引入struts-json的jar包 1.注册页面中添加JS方法调用 <span id="tip" style="color:red"></span> <

SpringBoot之封装json对象返回json数据

/** * @description:封装json对象,所有返回结果都使用它 **/ public class Result<T> { private int code;// 业务自定义状态码 private String msg;// 请求状态描述,调试用 private T data;// 请求数据,对象或数组均可 public Result() { } /** * 成功时候的调用 * @param data data * @param <T> t * @return Resu

spring mvc接收参数方式,json格式返回请求数据

1 使用方法形参使用变量接收提交的数据 2 在方法的形参中使用模型接收数据 3 如果在提交的表单中有多个数据模型,需要创建一个新的Bean,里面的属性是要接收的对象变量. 4 接收提交的日期字符串,转换成Date类型.需要使用@InitBinder来转换 5 批量删除数据,使用数组接收要删除的id,在页面中使用相同name属性 6 批量提交,如何接收数据?需要新建一个Bean,List或者LinkedList/ArrayList来接收. 7 在两个不同的action方法之间执行转发.在retur

php如何以post形式发送xm并返回xmll数据

post的数据为xml字符串,通过 $xml = simplexml_load_string($post_data);转换成xml对象 $header[] = "Content-type: text/xml";//定义content-type为xml $post_data = '<?xml version="1.0" encoding="UTF-8"?>'; $post_data .= '<param>'; $post_d

springMvc接收json和返回json对象

导入三个包 页面: function sendJson(){ //请求json响应json $.ajax({ type:"post", url: "${pageContext.request.contextPath }/upload/testJson", contentType:"application/json;charset=utf-8", data:'{"username":"张三", "p

CoAP学习笔记——nodeJS node-coap返回JSON数据包

0 前言 本文说明如何使用node-coap返回JSON数据包.CoAP是专门为物联网系统开发的面向网络的应用层协议栈,CoAP建立在UDP协议之上尽可能减少网络开销,又具有HTTP Restful类型的特性.node-coap使用nodejs实现了coap的客户端和服务器端. [测试环境]--ubuntu/Linux [相关博文] [CoAP协议文档--The Constrained Application Protocol (CoAP)] [CoAP协议学习--CoAP基础] [CoAP学习

springMVC 返回json乱码问题

多次遇见过这个问题,springMVC下返回给前端的json字符串,中文总是乱码,每次都要去翻一下之前的代码来看解决办法,有必要做个笔记记一下这个问题了. 解决方法: 在方法注解中加入如下: @RequestMapping(value = "/auditingSelector", produces = "application/json;charset=UTF-8") 其中application/json表示返回json格式 text/html表示返回字符串或网页内