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个人网站架设连环讲(一)
Oct 09 PHP
?算你??的 PHP 程式大小
Dec 06 PHP
PHP读取目录下所有文件的代码
Jan 07 PHP
PHP图片处理之使用imagecopyresampled函数实现图片缩放例子
Nov 19 PHP
php使用cookie保存用户登录的用户名实例
Jan 26 PHP
PHP里的单例类写法实例
Jun 25 PHP
PHP统计目录中文件以及目录中目录大小的方法
Jan 09 PHP
PHP云打印类完整示例
Oct 15 PHP
yii2实现 &quot;上一篇,下一篇&quot; 功能的代码实例
Feb 04 PHP
PHP实现微信支付(jsapi支付)流程步骤详解
Mar 15 PHP
PHP通过调用新浪API生成t.cn格式短网址链接的方法详解
Feb 20 PHP
PHP实现二维数组(或多维数组)转换成一维数组的常见方法总结
Dec 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
常用表单验证类,有了这个,一般的验证就都齐了。
2006/12/06 PHP
fleaphp rolesNameField bug解决方法
2011/04/23 PHP
php中截取中文字符串的代码小结
2011/07/17 PHP
php文件缓存方法总结
2016/03/16 PHP
微信公众号开发之语音消息识别php代码
2016/08/08 PHP
Laravel 6 将新增为指定队列任务设置中间件的功能
2019/08/06 PHP
PHP架构及原理知识点详解
2019/12/22 PHP
javascript操作文本框readOnly
2007/05/15 Javascript
Extjs ajax同步请求时post方式参数发送方式
2009/08/05 Javascript
用Jquery重写windows.alert方法实现思路
2013/04/03 Javascript
快速查找数组中的某个元素并返回下标示例
2013/09/03 Javascript
JS获取计算机mac地址以及IP的实现方法
2014/01/08 Javascript
Nodejs实现的一个静态服务器实例
2014/12/06 NodeJs
JavaScript中的getTimezoneOffset()方法使用详解
2015/06/10 Javascript
javascript实现仿百度图片的瀑布流加载效果
2016/04/20 Javascript
AngularJS实现动态编译添加到dom中的方法
2016/11/04 Javascript
Nodejs中使用captchapng模块生成图片验证码
2017/05/18 NodeJs
jQuery实现表格冻结顶栏效果
2017/08/20 jQuery
vue 粒子特效的示例代码
2017/09/19 Javascript
vue实现简单的日历效果
2020/09/24 Javascript
vue使用高德地图根据坐标定位点的实现代码
2019/08/22 Javascript
Layui动态生成select下拉选择框不显示的解决方法
2019/09/24 Javascript
JS实现拼图游戏
2021/01/29 Javascript
[01:22:19]EG vs TNC Supermajor小组赛B组败者组第一轮 BO3 第二场 6.2
2018/06/03 DOTA
Python实现爬取知乎神回复简单爬虫代码分享
2015/01/04 Python
深入源码解析Python中的对象与类型
2015/12/11 Python
用Python将一个列表分割成小列表的实例讲解
2018/07/02 Python
pycharm 代码自动补全的实现方法(图文)
2020/09/18 Python
英国豪华真皮和布艺沙发销售网站:Darlings of Chelsea
2018/01/05 全球购物
迷你西餐厅创业计划书范文
2013/12/31 职场文书
班级德育工作实施方案
2014/02/21 职场文书
高中军训感言800字
2014/03/05 职场文书
地理教师岗位职责
2014/03/16 职场文书
2014年大学教师工作总结
2014/12/02 职场文书
齐云山导游词
2015/02/06 职场文书
在JavaScript中如何使用宏详解
2021/05/06 Javascript