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 字符转义 注意事项
May 27 PHP
php在window iis的莫名问题的测试方法
May 14 PHP
php生成随机颜色的方法
Nov 13 PHP
PHP使用gmdate实现将一个UNIX 时间格式化成GMT文本的方法
Mar 19 PHP
Codeigniter检测表单post数据的方法
Mar 21 PHP
PHP中把有符号整型转换为无符号整型方法
May 27 PHP
php 利用socket发送HTTP请求(GET,POST)
Aug 24 PHP
表单提交错误后返回内容消失问题的解决方法(PHP网站)
Oct 20 PHP
php 使用fopen函数创建、打开文件详解及实例代码
Sep 24 PHP
PHP有序表查找之插值查找算法示例
Feb 10 PHP
thinkPHP利用ajax异步上传图片并显示、删除的示例
Sep 26 PHP
Laravel 创建可以传递参数 Console服务的例子
Oct 14 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
全国FM电台频率大全 - 6 辽宁省
2020/03/11 无线电
最令PHP初学者头痛的十四个问题
2006/07/12 PHP
ThinkPHP框架里隐藏index.php
2016/04/12 PHP
php面向对象程序设计中self与static的区别分析
2019/05/21 PHP
php简单检测404页面的方法示例
2019/08/23 PHP
关于Yii2框架跑脚本时内存泄漏问题的分析与解决
2019/12/01 PHP
JavaScript this调用规则说明
2010/03/08 Javascript
js判断字符长度及中英文数字等
2014/03/19 Javascript
嵌入式iframe子页面与父页面js通信的方法
2015/01/20 Javascript
通过JS判断联网类型和连接状态的实现代码
2015/04/01 Javascript
jQuery简单实现QQ空间点赞已经取消点赞
2015/04/02 Javascript
你有必要知道的25个JavaScript面试题
2015/12/29 Javascript
vue实现简单实时汇率计算功能
2017/01/15 Javascript
利用纯js + transition动画实现移动端web轮播图详解
2017/09/10 Javascript
Vue-Router实现组件间跳转的三种方法
2017/11/07 Javascript
javascript实现电脑和手机版样式切换
2017/11/10 Javascript
小程序云函数调用API接口的方法
2019/05/17 Javascript
js+canvas实现转盘效果(两个版本)
2020/09/13 Javascript
vue监听滚动事件的方法
2020/12/21 Vue.js
[04:29]DOTA2亚洲邀请赛小组赛第一日 TOP10精彩集锦
2015/02/01 DOTA
Python random模块(获取随机数)常用方法和使用例子
2014/05/13 Python
Python函数中定义参数的四种方式
2014/11/30 Python
python 正则表达式贪婪模式与非贪婪模式原理、用法实例分析
2019/10/14 Python
django model通过字典更新数据实例
2020/04/01 Python
Python基于百度AI实现OCR文字识别
2020/04/02 Python
Keras在训练期间可视化训练误差和测试误差实例
2020/06/16 Python
接口自动化多层嵌套json数据处理代码实例
2020/11/20 Python
python 写一个水果忍者游戏
2021/01/13 Python
css3针对移动端卡顿问题的解决(动画性能优化)
2020/02/14 HTML / CSS
Osklen官方在线商店:巴西服装品牌
2019/04/25 全球购物
公安局负责人查摆问题及整改方案
2014/09/27 职场文书
培训心得体会怎么写
2016/01/25 职场文书
Nginx+Tomcat负载均衡集群的实现示例
2021/10/24 Servers
Ruby使用Mysql2连接操作MySQL
2022/04/19 Ruby
 python中的元类metaclass详情
2022/05/30 Python
Win10服务主机占用内存怎么办?Win10服务主机进程占用大量内存解决方法
2022/09/23 数码科技