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 相关文章推荐
第二节--PHP5 的对象模型
Nov 16 PHP
PHP生成excel时单元格内换行问题的解决方法
Aug 26 PHP
PHP生成不重复随机数的方法汇总
Nov 19 PHP
PHP准确取得服务器IP地址的方法
Jun 02 PHP
最新制作ThinkPHP3.2.3完全开发手册
Nov 23 PHP
PHP如何将XML转成数组
Apr 04 PHP
CentOS下搭建PHP环境与WordPress博客程序的全流程总结
May 07 PHP
php车辆违章查询数据示例
Oct 14 PHP
Zend Framework入门教程之Zend_Mail用法示例
Dec 08 PHP
利用 fsockopen() 函数开放端口扫描器的实例
Aug 19 PHP
PHP排序算法之快速排序(Quick Sort)及其优化算法详解
Apr 21 PHP
PHP面向对象程序设计内置标准类,普通数据类型转为对象类型示例
Jun 12 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实现模仿socket请求返回页面的方法
2014/11/04 PHP
php中执行系统命令的方法
2015/03/21 PHP
两种php给图片加水印的实现代码
2020/04/18 PHP
TP5框架实现的数据库备份功能示例
2020/04/05 PHP
javascript 网页跳转的方法
2008/12/24 Javascript
jQuery源码分析之Event事件分析
2010/06/07 Javascript
JQuery 选择和过滤方法代码总结
2010/11/19 Javascript
js网页侧边随页面滚动广告效果实现
2011/04/14 Javascript
jQuery使用slideUp方法实现控制元素缓慢收起
2015/03/27 Javascript
JS实现兼容各种浏览器的获取选择文本的方法【测试可用】
2016/06/21 Javascript
Nodejs全局安装和本地安装的不同之处
2016/07/04 NodeJs
原生JS 购物车及购物页面的cookie使用方法
2017/08/21 Javascript
jQuery实现点击旋转,再点击恢复初始状态动画效果示例
2018/12/11 jQuery
小程序显示弹窗时禁止下层的内容滚动实现方法
2019/03/20 Javascript
vue.js实现照片放大功能
2020/06/23 Javascript
vue@cli3项目模板怎么使用public目录下的静态文件
2020/07/07 Javascript
vue中的循环对象属性和属性值用法
2020/09/04 Javascript
[50:21]Liquid vs Winstrike 2018国际邀请赛小组赛BO2 第二场
2018/08/19 DOTA
Python实现的简单万年历例子分享
2014/04/25 Python
Python Queue模块详解
2014/11/30 Python
Python+MongoDB自增键值的简单实现
2016/11/04 Python
Python实现数据可视化看如何监控你的爬虫状态【推荐】
2018/08/10 Python
django之跨表查询及添加记录的示例代码
2018/10/16 Python
如何在Django项目中引入静态文件
2019/07/26 Python
解决Django删除migrations文件夹中的文件后出现的异常问题
2019/08/31 Python
Python文件操作模拟用户登陆代码实例
2020/06/09 Python
详解css3 object-fit属性
2018/07/27 HTML / CSS
惠普美国官方商店:HP Official Store
2016/08/28 全球购物
Omio波兰:全欧洲低价大巴、火车和航班搜索和比价
2018/02/16 全球购物
美国珠宝店:Helzberg Diamonds
2018/10/24 全球购物
泰国排名第一的家居用品中心:HomePro
2020/11/18 全球购物
什么是GWT的Module
2013/01/20 面试题
室内设计专业学生的自我评价分享
2013/11/27 职场文书
电工工作职责范本
2014/02/22 职场文书
请假条的格式
2014/04/11 职场文书
大学生党员个人对照检查材料范文
2014/09/25 职场文书