PHP通过CURL库发送JSON数据到后端

PHP CURL JSON
0 97
suoniao 2020-08-24
需要:0索币

Http中传输对象,最好的表现形式莫过于JSON字符串了,但是作为参数的接收方,又是需要被告知传过来的是JSON!

其实这不难,只需要发送一个 http Content-Type头信息即可,即 “Content-Type: application/json; charset=utf-8”,参考代码如下:

<?php

/**
 * PHP发送Json对象数据
 *
 * @param $url 请求url
 * @param $jsonStr 发送的json字符串
 * @return array
 */
function http_post_json($url$jsonStr)
{
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_POST, 1);
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_POSTFIELDS, $jsonStr);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($ch, CURLOPT_HTTPHEADER, array(
            'Content-Type: application/json; charset=utf-8',
            'Content-Length: ' strlen($jsonStr)
        )
    );
    $response = curl_exec($ch);
    $httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
    curl_close($ch);
 
    return array($httpCode$response);
}
 
$url "http://www.suoniao.com";
$jsonStr = json_encode(array('a' => 1, 'b' => 2, 'c' => 2));
list($returnCode$returnContent) = http_post_json($url$jsonStr);

API服务端端接收客户端传过来的 “Content-Type: application/json; charset=utf-8”头信息后,再将 http body 数据(即 Json字符串)转换成 类对象

回帖
  • 消灭零回复
局域网文件共享软件
相关主题
PHP通过CURL库发送JSON数据到后端 0
PHP获取客户端IP地址的方法$_SERVER['REMOTE_ADDR'] 0
Qt生成JSON数据和解析JSon数据 0
Qt5中JSON的生成与解析 0
从PHP框架剥离的判断是否为手机移动终端的函数 0
PHP实战之分类信息系统开发教程 0
PHP在线购物商城系统开发实战未加密版 0
PHP就业班34期完整版下载 0
PHP就业班基础班39期完整版本 0
十二天带你用thinkphp框架开发一款电子商城系统项目 0
PHP入门教程之ajax编程入门教程 0
PHP实战XML编程PHP解析XML实战 0
PHP微信接口开发实战教程 0
PHP模板引擎之Smarty入门到实战 0
中级PHP工程师教程之从自己开发框架到商城系统开发实战 中级项目 0
PHP CMS系统之dedecms二次开发实战教程 0
PHP高级技术实战大型门户网站核心技术 0
PHP全栈开发工程师培训第八期完整版 0
PHP编程入门到实战教程 0
基于Laravel框架开发完整CMS内容管理系统实战十九天完整 0
相关主题
QSqlQuery::exec: database not open 0
在安卓系统上运行一个HTTP服务器的软件NanoHttpd 0
在安卓系统上面运行一个HTTP服务器的软件NanoHttpd 0
Qt5.12.4requested database does not belong to the calling thread 0
构建Qt界面的工具栏,主要用到QToolBar类 0
QToolButton详细使用图解教程 给主界面添加图标和文字 0
两个不同网络的电脑怎么实现文件的互相访问呢? 1
解决 dns 污染,一定是要用国外的 dns,而且 dns 流量需要经过你的隧道 0
Qt利用QClipboard复制hello suoniao到剪贴板 0
Qt剪切板复制图片和文本的方法将QImage格式复制到剪贴板,QPixmap要比QImage慢 0
QT 提供了QSystemTrayIcon类用于实现程序的托盘。QT提供了托盘示例 0
mainwindow单击关闭按钮不会触发关闭操作,它只是退出 0
何用Go语言开发一个高负荷的WebSocket服务 0
c++使用protobuf与GO语言做数据通信 0
golang应该是可以代替对使用c++存在误解的人吧,代替语言是不可能的 0
怎么使用Javascript下载文件 json文件下载 0
addDatabase: duplicate connection name 'qt_sql_default_connection', old connection removed 0
获取QT QTreeWidget控件当前Item的文本text值 0
wavesurfer.js是一款基于HTML5 canvas和Web Audio的音频播放器插件 0
web端音频播放插件wavesurfer.js简单使用图文教程 绘制音频波纹图 0