添加链接
link管理
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接

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

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

具体代码如下:

//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’才可以。

发布:学做网站论坛   分类: 建站方法技巧 最后更新: 浏览量:17538 次

学做网站论坛致力打造网站制作在线培训诚信平台,零基础学员在此 如何做网站 ,最后可以独立建网站。
学做网站论坛建站培训通过原创建站教程+讲师在线辅导的方式,非常细致讲解各类网站制作方法,哪怕是零基础小白也能看的懂,学的会。