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木马攻击防御之道
Mar 24 PHP
又一个php 分页类实现代码
Dec 03 PHP
php 数组二分法查找函数代码
Feb 16 PHP
获取PHP警告错误信息的解决方法
Jun 03 PHP
PHP删除数组中特定元素的两种方法
Jul 02 PHP
php生成gif动画的方法
Nov 05 PHP
网页的分页下标生成代码(PHP后端方法)
Feb 03 PHP
LAMP环境使用Composer安装Laravel的方法
Mar 25 PHP
PHP实现的文件上传类与用法详解
Jul 05 PHP
Laravel核心解读之异常处理的实践过程
Feb 24 PHP
关于Curl在Swoole协程中的解决方案详析
Sep 12 PHP
php+js实现的拖动滑块验证码验证表单操作示例【附源码下载】
May 27 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
海贼王:最美的悬赏令!
2020/03/02 日漫
把PHP安装为Apache DSO
2006/10/09 PHP
php zlib压缩和解压缩swf文件的代码
2008/12/30 PHP
让PHP开发者事半功倍的十大技巧小结
2010/04/20 PHP
php 读取文件头判断文件类型的实现代码
2013/08/05 PHP
dedecms函数分享之获取某一栏目所有子栏目
2014/05/19 PHP
PHP中常用的输出函数总结
2014/09/22 PHP
Thinkphp模板标签if和eq的区别和比较实例分析
2015/07/01 PHP
php用户注册信息验证正则表达式
2015/11/12 PHP
Zend Framework教程之动作的基类Zend_Controller_Action详解
2016/03/07 PHP
PHP使用curl制作简易百度搜索
2016/11/03 PHP
PHP 文件上传后端处理实用技巧方法
2017/01/06 PHP
jquery实现的元素的left增加N像素 鼠标移开会慢慢的移动到原来的位置
2010/03/21 Javascript
js保留两位小数使用toFixed实现
2013/07/29 Javascript
Jquery:ajax实现翻页无刷新功能代码
2013/08/05 Javascript
由简入繁实现Jquery树状结构的方法(推荐)
2016/06/10 Javascript
jquery制做精致的倒计时特效
2016/06/13 Javascript
使用jQuery,Angular实现登录界面验证码详解
2017/04/27 jQuery
vue表单绑定实现多选框和下拉列表的实例
2017/08/12 Javascript
微信小程序 input表单与redio及下拉列表的使用实例
2017/09/20 Javascript
vue mint-ui 实现省市区街道4级联动示例(仿淘宝京东收货地址4级联动)
2017/10/16 Javascript
轻量级富文本编辑器wangEditor结合vue使用方法示例
2018/10/10 Javascript
原生js实现贪食蛇小游戏的思路详解
2019/11/26 Javascript
微信小程序开发搜索功能实现(前端+后端+数据库)
2020/03/04 Javascript
跟老齐学Python之眼花缭乱的运算符
2014/09/14 Python
Python编程django实现同一个ip十分钟内只能注册一次
2017/11/03 Python
python通过opencv实现批量剪切图片
2017/11/13 Python
Python编程实现tail-n查看日志文件的方法
2019/07/08 Python
使用Python串口实时显示数据并绘图的例子
2019/12/26 Python
python3+selenium获取页面加载的所有静态资源文件链接操作
2020/05/04 Python
Pycharm快捷键配置详细整理
2020/10/13 Python
你们项目是如何进行变更控制的
2015/08/26 面试题
机械专业个人求职自荐信格式
2013/09/21 职场文书
教你怎样写好自我评价
2013/10/05 职场文书
数学高效课堂实施方案
2014/03/29 职场文书
教师党的群众路线教育实践活动个人整改方案
2014/10/31 职场文书