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 相关文章推荐
用Socket发送电子邮件
Oct 09 PHP
php自动加载的两种实现方法
Jun 21 PHP
php开发文档 会员收费1期
Aug 14 PHP
php获取淘宝分类id示例
Jan 16 PHP
php结合ajax实现赞、顶、踩功能实例
May 12 PHP
php下Memcached入门实例解析
Jan 05 PHP
PHP中生成UUID自定义函数分享
Jun 10 PHP
非集成环境的php运行环境(Apache配置、Mysql)搭建安装图文教程
Apr 12 PHP
浅析php如何实现App常用的秒发功能
Aug 03 PHP
利用PHP如何写APP接口详解
Aug 23 PHP
CI(CodeIgniter)框架实现图片上传的方法
Mar 24 PHP
thinkphp框架表单数组实现图片批量上传功能示例
Apr 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
PHP句法规则详解 入门学习
2011/11/09 PHP
PHP+memcache实现消息队列案例分享
2014/05/21 PHP
PHP开发框架Laravel数据库操作方法总结
2014/09/03 PHP
php中get_object_vars()方法用法实例
2015/02/08 PHP
JS 页面内容搜索,类似于 Ctrl+F功能的实现代码
2007/08/13 Javascript
传递参数的标准方法(jQuery.ajax)
2008/11/19 Javascript
JavaScript OOP类与继承
2009/11/15 Javascript
javascript学习笔记(四)function函数部分
2014/09/30 Javascript
使用AngularJS创建单页应用的编程指引
2015/06/19 Javascript
更高效的使用JQuery 这里总结了8个小技巧
2016/04/13 Javascript
AngularJS ng-bind-html 指令详解及实例代码
2016/07/30 Javascript
微信小程序 生命周期和页面的生命周期详细介绍
2017/01/19 Javascript
干货!教大家如何选择Vue和React
2017/03/13 Javascript
ES6中module模块化开发实例浅析
2017/04/06 Javascript
jquery仿微信聊天界面
2017/05/06 jQuery
关于react-router/react-router-dom v4 history不能访问问题的解决
2018/01/08 Javascript
webpack自动打包和热更新的实现方法
2019/06/24 Javascript
适合前端Vue开发童鞋的跨平台Weex的使用详解
2019/10/16 Javascript
详解Vue 项目中的几个实用组件(ts)
2019/10/29 Javascript
[54:10]完美世界DOTA2联赛PWL S2 Magma vs FTD 第二场 11.29
2020/12/03 DOTA
[01:03:50]DOTA2-DPC中国联赛 正赛 CDEC vs DLG BO3 第二场 2月7日
2021/03/11 DOTA
Python笔记(叁)继续学习
2012/10/24 Python
python多线程抓取天涯帖子内容示例
2014/04/03 Python
Python合并两个字典的常用方法与效率比较
2015/06/17 Python
Python实现基本数据结构中栈的操作示例
2017/12/04 Python
python GUI库图形界面开发之PyQt5信号与槽事件处理机制详细介绍与实例解析
2020/03/08 Python
python3从网络摄像机解析mjpeg http流的示例
2020/11/13 Python
python3访问字典里的值实例方法
2020/11/18 Python
微信浏览器取消缓存的方法
2015/03/28 HTML / CSS
HTML5适合的情人节礼物有纪念日期功能
2021/01/25 HTML / CSS
面试后感谢信怎么写
2014/02/01 职场文书
总经理秘书岗位职责
2014/03/17 职场文书
财务内勤岗位职责
2014/04/17 职场文书
中学生运动会通讯稿大全
2014/09/18 职场文书
Python中rapidjson参数校验实现
2021/07/25 Python
JS实现页面炫酷的时钟特效示例
2022/08/14 Javascript