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中在数据库中保存Checkbox数据(2)
Oct 09 PHP
php中文字符截取防乱码
Mar 28 PHP
IIS php环境配置PHP5 MySQL5 ZendOptimizer phpmyadmin安装与配置
Nov 18 PHP
使用VisualStudio开发php的图文设置方法
Aug 21 PHP
根据ip调用新浪api获取城市名并转成拼音
Mar 07 PHP
yii框架builder、update、delete使用方法
Apr 30 PHP
PHPUnit安装及使用示例
Oct 29 PHP
php实现的日历程序
Jun 18 PHP
Session 失效的原因汇总及解决丢失办法
Sep 30 PHP
PHP经典实用正则表达式小结
May 04 PHP
Laravel 实现Controller向blade前台模板赋值的四种方式小结
Oct 22 PHP
PHP连接MySQL数据库三种实现方法
Dec 10 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
解析isset与is_null的区别
2013/08/09 PHP
PHP图片库imagemagick安装方法
2014/09/23 PHP
Mac环境下php操作mysql数据库的方法分享
2015/05/11 PHP
PHP实现163邮箱自动发送邮件
2016/03/29 PHP
php+jQuery+Ajax简单实现页面异步刷新
2016/08/08 PHP
JavaScript confirm选择判断
2008/10/18 Javascript
jQuery1.4.2与老版本json格式兼容的解决方法
2011/02/12 Javascript
让textarea自动调整大小的js代码
2011/04/12 Javascript
javascript浏览器窗口之间传递数据的方法
2015/01/20 Javascript
Javascript将数值转换为金额格式(分隔千分位和自动增加小数点)
2016/06/22 Javascript
微信小程序 Record API详解及实例代码
2016/09/30 Javascript
jQuery validate插件功能与用法详解
2016/12/15 Javascript
NodeJs安装npm包一直失败的解决方法
2017/04/28 NodeJs
Angular2.0实现modal对话框的方法示例
2018/02/18 Javascript
详解Node使用Puppeteer完成一次复杂的爬虫
2018/04/18 Javascript
Node.js文件编码格式的转换的方法
2018/04/27 Javascript
详解webpack4多入口、多页面项目构建案例
2018/05/25 Javascript
Echarts在Taro微信小程序开发中的踩坑记录
2020/11/09 Javascript
[34:39]DOTA2上海特级锦标赛主赛事日 - 4 败者组第四轮#1COL VS EG第二局
2016/03/05 DOTA
python如何实现excel数据添加到mongodb
2015/07/30 Python
10分钟教你用Python实现微信自动回复功能
2018/11/28 Python
python3爬虫获取html内容及各属性值的方法
2018/12/17 Python
对Python 语音识别框架详解
2018/12/24 Python
python读取csv和txt数据转换成向量的实例
2019/02/12 Python
python3 实现爬取TOP500的音乐信息并存储到mongoDB数据库中
2019/08/24 Python
Python计算信息熵实例
2020/06/18 Python
PyCharm 解决找不到新打开项目的窗口问题
2021/01/15 Python
python des,aes,rsa加解密的实现
2021/01/16 Python
SHEIN香港:价格实惠的女性时尚服装
2018/08/14 全球购物
Viking Direct荷兰:购买办公用品
2019/06/20 全球购物
Three Graces London官网:英国奢侈品牌
2021/03/18 全球购物
机电工程专业应届生求职信
2013/10/03 职场文书
加入学生会演讲稿
2014/04/24 职场文书
中学教师个人总结
2015/02/10 职场文书
解决Pytorch dataloader时报错每个tensor维度不一样的问题
2021/05/28 Python
hive数据仓库新增字段方法
2022/06/25 数据库