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 array_intersect()函数使用代码
Jan 14 PHP
浅析使用Turck-mmcache编译来加速、优化PHP代码
Jun 20 PHP
php分页代码学习示例分享
Feb 20 PHP
php判断数组元素中是否存在某个字符串的方法
Jun 14 PHP
[原创]php常用字符串输出方法分析(echo,print,printf及sprintf)
Jul 09 PHP
Yii2创建控制器(createController)方法详解
Jul 23 PHP
php 输入输出流详解及示例代码
Aug 25 PHP
PHP类相关知识点实例总结
Sep 28 PHP
PHP PDOStatement::errorCode讲解
Jan 31 PHP
Yii2框架自定义类统一处理url操作示例
May 25 PHP
PHP超全局变量实现原理及代码解析
Sep 01 PHP
详解thinkphp的Auth类认证
May 28 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/11/25 PHP
让codeigniter与swfupload整合的最佳解决方案
2014/06/12 PHP
ThinkPHP采用原生query实现关联查询left join实例
2014/12/02 PHP
Zend Framework创建自己的动作助手详解
2016/03/05 PHP
IE与FireFox的兼容性问题分析
2007/04/22 Javascript
FormValidate 表单验证功能代码更新并提供下载
2008/08/23 Javascript
JavaScript 获得选中文本内容的方法
2009/02/15 Javascript
不同浏览器对回车提交表单的处理办法
2010/02/13 Javascript
JS小功能(checkbox实现全选和全取消)实例代码
2013/11/28 Javascript
js实现同一个页面多个渐变效果的方法
2015/04/10 Javascript
JS操作XML实例总结(加载与解析XML文件、字符串)
2015/12/08 Javascript
JS Ajax请求如何防止重复提交
2016/06/13 Javascript
JS中使用mailto实现将用户在网页中输入的内容传递到本地邮件客户端
2016/10/08 Javascript
使用jQuery ajaxupload插件实现无刷新上传文件
2017/04/23 jQuery
JS简单实现查看文档创建日期、修改日期和文档大小的方法示例
2018/04/08 Javascript
angular 组件通信的几种实现方式
2018/07/13 Javascript
微信小程序基于picker实现级联菜单
2019/02/15 Javascript
详细分析python3的reduce函数
2017/12/05 Python
TensorFlow模型保存/载入的两种方法
2018/03/08 Python
Python基于OpenCV库Adaboost实现人脸识别功能详解
2018/08/25 Python
Python基于network模块制作电影人物关系图
2020/06/19 Python
python实现模拟器爬取抖音评论数据的示例代码
2021/01/06 Python
python 实现有道翻译功能
2021/02/26 Python
通过HTML5 Canvas API绘制弧线和圆形的教程
2016/03/14 HTML / CSS
达拉斯牛仔官方商店:Dallas Cowboys Pro Shop
2018/02/10 全球购物
黑猩猩商店:The Chimp Store
2020/02/12 全球购物
大学生职业生涯规划范文
2013/12/31 职场文书
酒店led欢迎词
2014/01/09 职场文书
本科生的职业生涯规划范文
2014/01/09 职场文书
早会主持词
2014/03/17 职场文书
委托书怎样写
2014/08/30 职场文书
企业委托书范本
2014/09/13 职场文书
铣工实训报告
2014/11/05 职场文书
公司的力量观后感
2015/06/05 职场文书
2016年优秀教师先进事迹材料
2016/02/26 职场文书
PHP 对接美团大众点评团购券(门票)的开发步骤
2021/04/03 PHP