工作业务中经常对接webservice接口,大部分是和三方程序对接。
代码
/**
* php调用webservices 调用webservice
*/
public function testGslw(){
//WebService接口数据调用 需要开启soap扩展
$client = new \SoapClient("http://10.88.20.67:6317/Capricorn/services/Mh3cservice?wsdl");
//print_r($client->__getFunctions()); //查看对外的方法 以及参数
// print_r($client->__getTypes()); // 查看类型
//exit;
// 组织参数 根据接口具体提供参数组织对应参数
$param = [
'sbjgbh'=>'34112201',
'zcm'=>'',
'hisjyh'=>'2021112600023378',
'method'=>'query_gsdjxx',
'jsonPara'=>'{"p_grbh":"341125199010235554"}',
'yybm'=>'221003'
];
$rst =$client->pipInvoke($param);//请求入口函数为【pipInvoke】
var_dump($rst);
}
实现效果
扩展
1、xml格式webservice请求样例
/**
* 测试调用自助机接口
*/
public function testZzj(){
//WebService接口数据调用
$soap=new \SoapClient('http://10.87.230.25:8001/cczzjWebService.asmx?wsdl'); //这里填写你要调用的URL
$soap->soap_defencoding = 'utf-8';
$soap->decode_utf8 = false;
$soap->xml_encoding = 'utf-8';
//var_dump($soap->__getFunctions());//打印暴露的方法
//var_dump($soap->__getTypes());//打印对应方法的参数和参数类型
$requestStr = '<initials>JZGCS</initials><deviceId>9001</deviceId>';
$requestStr ='<request>'.
'<initials>JZGCS</initials>'.
'<deviceId>9001</deviceId>'.
'</request>';
$param = ['Request'=>$requestStr];
//$param = xml($param)->getContent();
//var_dump($param);
$rst =$soap->A1005($param);
var_dump($rst);
$requestStr2 = '<request><initials>JZGCS</initials><deviceId>9001</deviceId></request>';
$params2 = ['Request'=>$requestStr2];
$rst2 = $soap->A1005($params2);
var_dump($rst2);
}
访问效果
2、webservice base64格式图片返回处理
代码
/**
* php调用webservices 测试用例
*/
public function testSoap(){
//WebService接口数据调用
$soap=new \SoapClient('http://10.87.230.208:88/OpenLisService.asmx?wsdl'); //这里填写你要调用的URL
$soap->soap_defencoding = 'utf-8';
$soap->decode_utf8 = false;
$soap->xml_encoding = 'utf-8';
//$rst = $soap->hello();
//获取检验报告用例===================================
$param = ['vPatientId'=>'469552'];
$rst =$soap->GetInspectJPGReportJPG($param);
echo '<img src="https://img-blog.csdnimg.cn/2022010610561776195.jpeg'.$rst->GetInspectJPGReportJPGResult.'"/>';exit;
}
访问效果