学做网站培训课程介绍

当前位置:

PHP实现POST请求API接口并传递XML参数方法

在开发网站时,有时需要使用API接口来获取数据。请求API接口时,一般有二种方法:一种是GET请求,一种是POST请求

大多数API接口只需要传入JSON参数就可以了,但有些接口需要传入XML参数。这对于一些新手就有一定难度了。下面学做网站论坛介绍一下PHP实现POST请求API接口并传递XML参数方法。(如果是wordpress网站,可以直接使用wp_remote_post来请求)

具体代码如下:


<?php
//XML参数
$data = '<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ser="http://services.gUnit_marry_mzb_webservice.topsuntech.com">
<soapenv:Header>
<AuthenticationToken>
<Username>marry</Username>
<Password>123456</Password>
</AuthenticationToken>
</soapenv:Header>
<soapenv:Body>
<ser:GetMarryInfo>
<ser:in0>123456</ser:in0>
<ser:in1></ser:in1>
<ser:in2></ser:in2>
<ser:in3></ser:in3>
</ser:GetMarryInfo>
</soapenv:Body>
</soapenv:Envelope>'
;

//接口地址
$api ='http://10.161.166.164:61001/baseifsys/thirdparty/restful/send?_servicecode=20220606174225';

$curl = curl_init();//初始化一个cURL会话(curl 就是模拟浏览器请求)
curl_setopt($curl, CURLOPT_URL, $api);//设置一个cURL传输选项。连接接口
//curl_setopt($curl, CURLOPT_HEADER, 1);// 设置header
//curl_setopt($curl, CURLOPT_USERAGENT, 'Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.1; Trident/6.0)');
curl_setopt($curl, CURLOPT_POST, 1);//启用时会发送一个常规的POST请求
curl_setopt($curl, CURLOPT_CUSTOMREQUEST, "POST");
curl_setopt($curl, CURLOPT_POSTFIELDS, $data);//要发送的数据,这是传给BODY

//忽略证书
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, false);
//CURL发送头部信息 一定要是Content-Type: text/xml;
curl_setopt($curl, CURLOPT_HTTPHEADER, array('Content-Type: text/xml;charset=UTF-8', 'Content-Length: ' . strlen($data)));
//curl_setopt($curl, CURLOPT_HEADER, 0);//忽略header头信息
curl_setopt($curl, CURLOPT_TIMEOUT, 0);//设置超时时间
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);// 设置cURL 参数,要求结果保存到字符串中还是输出到屏幕上。
$content_obj = curl_exec($curl);// 运行cURL,请求网页
curl_close($curl);// 关闭URL请求

print_r($content_obj);
?>

通过上面的代码就可以通过POST将XML参数传给API接口来请求数据了。

也可以直接传递JSON格式的数据,不需要转成数组。


$data = '{
"serviceID": "S10-00000020",
"senderID": "C10-00000011",
"serviceDescript": {
"data": {},
"serviceName": "{"accessId":"Sw1cnAhZ","accessKey":"ab6af3d50db74cbea478edd103c719bb","jtglywdxsfzmhm":"'
.$_POST['shengfenzheng'].'"}",
"serviceMethod": "get"
}
}'
;

这时headers的信息要修改成'Content-Type' => 'application/json'才可以。

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注

相关教程

  • 通常我们制作网站的二级菜单都是使用普通的下拉展开的方式,但也有网站的下拉二级菜单是带有图片的布局。如下图:怎么制作这样的带图的二级下拉菜单
  • 默认情况下,服务器的PHP上传限制为50M,对于多数上传是足够了。如果想在网站后台上传更大的文件,可以在宝塔后台修改上传限制50M的大小。方法如下:
  • 做网站时,有时需要在网站前台制作一个表单,表单里有点击上传图片的功能。怎么自己使用PHP制作这种网站前台表单上传图片到服务器功能呢?下面分享
  • 这个教程将讲解Wordpress + Elementor可视化开发外贸独立网站的整个过程,将以视频案例的方式一步步讲解如何可视化开发外贸独立网站。以下是可视化开
  • 制作外贸网站时,如果想在网站的网页中嵌入地图,我们需要嵌入英文版地图。如下图:怎么做到嵌入这样的英文版地图呢,下面学做网站论坛就来介绍一下
  • 网站导航菜单中常见的有二级下拉菜单,这个制作起来相对比较简单。如果网站项目比较多时,可以制作三级下拉菜单,可以更好的展示项目。如下图:怎么
  • 现在很多网站都安装了SSL证书来实现加密访问,SSL证书一般是申请后可以使用一年,一年到期后再次申请重新布署。但有些站长会遇到这样的情况,网站旧
  • WordPress程序里的某个PHP文件,如果想连接数据库,一般需要填写数据库名、数据库用户、密码等信息,如下:<?php$conn=mysqli_connect(&qu
  • 我们做网站一般都是做自适应结构,不同用户使用不同的浏览设备可以浏览不同的版面的网站。但有时为了特殊的要求,我们不希望自己的网站手机端自适应,
  • 我们制作网站前台提交发布界面时,富文本编辑器常常使用kindeditor 编辑器,kindeditor 编辑器支持用户上传图片和附件,通常情况下编辑器是不限制附件