PHP使用Http Post请求发送Json对象数据代码解析


Posted in PHP onJuly 16, 2020

因项目的需要,PHP调用第三方 Java/.Net 写好的 Restful Api,其中有些接口,需要 在发送 POST 请求时,传入对象。

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://52php.cnblogs.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 相关文章推荐
PHP积分兑换接口实例
Feb 09 PHP
PHP中使用curl伪造IP的简单方法
Aug 07 PHP
PHP对称加密函数实现数据的加密解密
Oct 27 PHP
thinkphp jquery实现图片上传和预览效果
Jul 22 PHP
PHP进制转换实例分析(2,8,16,36,64进制至10进制相互转换)
Feb 04 PHP
PHP中Notice错误常见解决方法
Apr 28 PHP
ThinkPHP+EasyUI之ComboTree中的会计科目树形菜单实现方法
Jun 09 PHP
php判断str字符串是否是xml格式数据的方法示例
Jul 26 PHP
Laravel实现定时任务的示例代码
Aug 10 PHP
PHP使用glob方法遍历文件夹下所有文件的实例
Oct 17 PHP
基于laravel where的高级使用方法
Oct 10 PHP
yii框架结合charjs实现统计30天数据的方法
Apr 04 PHP
PHP字符串和十六进制如何实现互相转换
Jul 16 #PHP
PHP xpath提取网页数据内容代码解析
Jul 16 #PHP
浅析PHP中json_encode与json_decode的区别
Jul 15 #PHP
PHP vsprintf()函数格式化字符串操作原理解析
Jul 14 #PHP
PHP number_format函数原理及实例解析
Jul 14 #PHP
PHP array_reverse() 函数原理及实例解析
Jul 14 #PHP
PHP基于array_unique实现二维数组去重
Jul 14 #PHP
You might like
一个PHP日历程序
2006/12/06 PHP
php microtime获取浮点的时间戳
2010/02/21 PHP
PHP网页游戏学习之Xnova(ogame)源码解读(三)
2014/06/23 PHP
thinkphp中空模板与空模块的用法实例
2014/11/26 PHP
PHP 中使用explode()函数切割字符串为数组的示例
2017/05/06 PHP
PHP实现的装箱算法示例
2018/06/23 PHP
PHP实现打包zip并下载功能
2018/06/12 PHP
PHP中number_format()函数的用法讲解
2019/04/08 PHP
iframe子页面获取父页面元素的方法
2013/11/05 Javascript
跟我学习javascript的最新标准ES6
2015/11/20 Javascript
React创建组件的三种方式及其区别
2017/01/12 Javascript
详解JS中统计函数执行次数与执行时间
2018/09/04 Javascript
如何使用Python的Requests包实现模拟登陆
2018/04/27 Python
Python实现提取XML内容并保存到Excel中的方法
2018/09/01 Python
python调用摄像头拍摄数据集
2019/06/01 Python
python pandas模块基础学习详解
2019/07/03 Python
利用python求积分的实例
2019/07/03 Python
Python3 sys.argv[ ]用法详解
2019/10/24 Python
python实现加密的方式总结
2020/01/19 Python
pycharm安装及如何导入numpy
2020/04/03 Python
使用pyecharts1.7进行简单的可视化大全
2020/05/17 Python
美国最顶级的精品店之一:Hampden Clothing
2016/12/22 全球购物
加拿大折扣、优惠券和交易网站:WagJag
2018/02/07 全球购物
可靠的数据流传输TCP
2016/03/15 面试题
信息管理专业学生自荐信格式
2013/09/22 职场文书
教育课题研究自我鉴定范文
2013/12/28 职场文书
金融系应届毕业生求职信
2014/05/26 职场文书
大专生找工作自荐书
2014/06/10 职场文书
缓刑人员思想汇报500字
2014/09/12 职场文书
民事赔偿协议书
2014/11/02 职场文书
工伤私了协议书范本
2014/11/24 职场文书
2015年挂职锻炼工作总结
2014/12/12 职场文书
入党转正申请报告
2015/05/15 职场文书
2016年师德先进个人事迹材料
2016/02/29 职场文书
Python中使用subprocess库创建附加进程
2021/05/11 Python
pytorch MSELoss计算平均的实现方法
2021/05/12 Python