黑小发 2021-08-12 14:29 采纳率: 33.3%
浏览 75
已结题

php通过curl传输json数据到另外一个php并在那个界面显示

最近在写一个功能,需要使用到curl发送到json数据某个地址上并进行显示,发送的页面代码若下

$ch = curl_init();
$data = ['username' => 'admin', 'password' => '123456'];
$url = 'http://www.csl.com/program/ENG/course_new/approveleaveabc.php';
$ch = curl_init(); //初始化curl
curl_setopt($ch, CURLOPT_URL, $url);//设置链接

curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);//设置是否返回信息
curl_setopt($ch, CURLOPT_POST, 1);//设置为POST方式
curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($data));//POST数据
// curl_setopt($ch, CURLOPT_HTTPHEADER, array( 
// 'Content-Type: application/json',
// 'Content-Length: ' . strlen($data))
// );
curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322; .NET CLR 2.0.50727)");
$response = curl_exec($ch);//接收返回信息
if(curl_errno($ch)){//出错则显示错误信息
    print curl_error($ch);
}
curl_close($ch); //关闭curl链接
// echo $response;//显示返回信息 
print_r($response);

然后接受界面代码

$res = file_get_contents('php://input');
print_r($res);
print_r($_POST);

最后的结果是有返回值,但是接受界面还是空的就如下图(第一张是接受界面,第二张是发送的),这是什么原因呢?
img

img

  • 写回答

7条回答 默认 最新

  • Jason Ho 2021-08-12 14:44
    关注

    request()->params();
    $_GET 或 $_POST 试下

    另外这一句是错的 。
    curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($data));//POST数据
    应该 是json_encode($data),你这个写法是get请求

    参考:

    
    protected function PostCurlRequest($remote_server, $post_string)
        {
            $ch = curl_init();
            curl_setopt($ch, CURLOPT_URL, $remote_server);
            curl_setopt($ch, CURLOPT_POST, 1);
            curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 5);
            curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type: application/json;charset=utf-8'));
            curl_setopt($ch, CURLOPT_POSTFIELDS, $post_string);
            curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
            curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
            curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
            $data = curl_exec($ch);
            curl_close($ch);
            return $data;
        }
    

    $res = file_get_contents('php://input'); 获取的可能是字符串

    评论

报告相同问题?

问题事件

  • 系统已结题 8月20日
  • 创建了问题 8月12日

悬赏问题

  • ¥15 CST仿真别人的模型结果仿真结果S参数完全不对
  • ¥15 误删注册表文件致win10无法开启
  • ¥15 请问在阿里云服务器中怎么利用数据库制作网站
  • ¥60 ESP32怎么烧录自启动程序
  • ¥50 html2canvas超出滚动条不显示
  • ¥15 java业务性能问题求解(sql,业务设计相关)
  • ¥15 52810 尾椎c三个a 写蓝牙地址
  • ¥15 elmos524.33 eeprom的读写问题
  • ¥15 用ADS设计一款的射频功率放大器
  • ¥15 怎么求交点连线的理论解?