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一句话cmdshell新型 (非一句话木马)
Apr 18 PHP
php checkdate、getdate等日期时间函数操作详解
Mar 11 PHP
PHP实现的简易版图片相似度比较
Jan 07 PHP
简介PHP的Yii框架中缓存的一些高级用法
Mar 29 PHP
Joomla数据库操作之JFactory::getDBO用法
May 05 PHP
php通过会话控制实现身份验证实例
Oct 18 PHP
ThinkPHP模板标签eq if 中区分0,null,false的方法
Mar 24 PHP
Laravel Intervention/image图片处理扩展包的安装、使用与可能遇到的坑详解
Nov 14 PHP
浅析PHP 中move_uploaded_file 上传中文文件名失败
Apr 17 PHP
PHP操作路由器实现方法示例
Apr 27 PHP
解决windows上php xdebug 无法调试的问题
Feb 19 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中调用JAVA
2006/10/09 PHP
PHP 存取 MySQL 数据库的一个例子
2006/10/09 PHP
巧用php中的array_filter()函数去掉多维空值的代码分享
2012/09/07 PHP
php通过pecl方式安装扩展的实例讲解
2018/02/02 PHP
PHP给源代码加密的几种方法汇总(推荐)
2018/02/06 PHP
javascript CSS画图之基础篇
2009/07/29 Javascript
jQuery Ajax 实例全解析
2011/04/20 Javascript
关于JS控制代码暂停的实现方法分享
2012/10/11 Javascript
用Javascript来生成ftp脚本的小例子
2013/07/03 Javascript
鼠标移到div,浮层显示明细,弹出层与div的上边距左边距重合(示例代码)
2013/12/14 Javascript
使用Promise链式调用解决多个异步回调的问题
2017/01/15 Javascript
BootStrap selectpicker后台动态绑定数据
2017/06/01 Javascript
详谈ES6中的迭代器(Iterator)和生成器(Generator)
2017/07/31 Javascript
史上最全JavaScript数组去重的十种方法(推荐)
2017/08/17 Javascript
Vue中定义全局变量与常量的各种方式详解
2017/08/23 Javascript
vue-router的使用方法及含参数的配置方法
2018/11/13 Javascript
利用JS代码自动删除稿件的普通弹幕功能
2019/09/20 Javascript
npx create-react-app xxx创建项目报错的解决办法
2020/02/17 Javascript
基于JS正则表达式实现模板数据动态渲染(实现思路详解)
2020/03/07 Javascript
js 压缩图片的示例(只缩小体积,不更改图片尺寸)
2020/10/21 Javascript
Python文本特征抽取与向量化算法学习
2017/12/22 Python
python SSH模块登录,远程机执行shell命令实例解析
2018/01/12 Python
Python实现的用户登录系统功能示例
2018/02/05 Python
详解tensorflow训练自己的数据集实现CNN图像分类
2018/02/07 Python
Python 编程速成(推荐)
2019/04/15 Python
33个Python爬虫项目实战(推荐)
2019/07/08 Python
Python openpyxl模块原理及用法解析
2020/01/19 Python
python 实现读取csv数据,分类求和 再写进 csv
2020/05/18 Python
龟牌英国商店:Turtle Wax Brand Store UK
2019/07/02 全球购物
安全月活动总结
2014/05/05 职场文书
保护环境倡议书500字
2014/05/19 职场文书
旷课检讨书
2015/01/26 职场文书
担保贷款承诺书
2015/04/30 职场文书
2016年中秋祝酒词
2015/11/26 职场文书
银行客户经理培训心得体会
2016/01/09 职场文书
angular异步验证器防抖实例详解
2022/03/31 Javascript