thinkphp soapcall,参数错误

yllmm520 2016-08-19 02:54:54
$client = new SoapClient(null, array(
'location' => 'https:/***.com/services/EbtService',
'uri' => 'http:/***.com/services/EbtService',
'trace' => true,
'soap_version' => SOAP_1_2,
));
$param = array(
'in' => array(
'SNNUM' => '',
'WDNUM' => '',
'FMATNR' => '',
'RMATNR' => '',
'NUMBER_SL' => '',
'NAME' => '',
'ADRESS' => '',
'PHONE' => '',
'CPDL' => '',
)
);
$p = $client->__soapCall('service',$param);

对方是用java写的服务器端,以上这样方式访问的话,会提示unknown错误,但是如果我把$param,变成array() 去访问,是收到对方的返回信息的,而我把$param变成一个字符串,对方又接收不到信息。对方给的wsdl链接,但是经过很多次试验,暂时只有这种方法才能链接得上
求大神解答
...全文
424 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
yllmm520 2016-08-23
  • 打赏
  • 举报
回复
引用 7 楼 xuzuning 的回复:
如果你需要我帮你调试,那么请给出目标地址
您好,目标地址:https://malltest.icbc-axa.com/services/EbtService?wsdl 麻烦了
yllmm520 2016-08-22
  • 打赏
  • 举报
回复
引用 7 楼 xuzuning 的回复:
如果你需要我帮你调试,那么请给出目标地址
多谢,私信给你地址吗?
xuzuning 2016-08-22
  • 打赏
  • 举报
回复
如果你需要我帮你调试,那么请给出目标地址
yllmm520 2016-08-22
  • 打赏
  • 举报
回复
引用 5 楼 xuzuning 的回复:
我前面已经说过了,你用 __soapCall 调用的话,参数还要加一层数组
$param = array('inputdes'=>'123'); $p = $client->__soapCall('service',array($param)); 还是这样 $param = array('inputdes'=>'123'); $p = $client->__soapCall('service',array('inputdes'=>$param)); 这两种方法我都是报 ‘Fatal error: Uncaught SoapFault exception: [soapenv:Server] unknown’ 这个错误。。。
xuzuning 2016-08-22
  • 打赏
  • 举报
回复
我前面已经说过了,你用 __soapCall 调用的话,参数还要加一层数组
yllmm520 2016-08-22
  • 打赏
  • 举报
回复
引用 3 楼 xuzuning 的回复:
[0] => struct service { string inputdes; } 不是已经告述你参数是 array('inputdes' => '内容') 了吗?
Fatal error: Uncaught SoapFault exception: [soapenv:Receiver] unknown 我在这里面用非空数组的话,就会报上面的错误。$p = $client->__soapCall('service',array('inputdes'=>'123'));
xuzuning 2016-08-22
  • 打赏
  • 举报
回复
[0] => struct service { string inputdes; } 不是已经告述你参数是 array('inputdes' => '内容') 了吗?
yllmm520 2016-08-22
  • 打赏
  • 举报
回复
引用 1 楼 xuzuning 的回复:
具体的参数要看 WSDL,连接后可通过 __gettype 方法查看 一般参数需包装成关联数组 $p = $client->service($param); $p = $client->__soapCall('service',array($param));
Array ( [0] => struct service { string inputdes; } [1] => struct serviceResponse { string return; } ) 以上是我用gettypes,返回的结果。
xuzuning 2016-08-19
  • 打赏
  • 举报
回复
具体的参数要看 WSDL,连接后可通过 __gettype 方法查看 一般参数需包装成关联数组 $p = $client->service($param); $p = $client->__soapCall('service',array($param));

20,359

社区成员

发帖
与我相关
我的任务
社区描述
“超文本预处理器”,是在服务器端执行的脚本语言,尤其适用于Web开发并可嵌入HTML中。PHP语法利用了C、Java和Perl,该语言的主要目标是允许web开发人员快速编写动态网页。
phpphpstorm 技术论坛(原bbs)
社区管理员
  • 开源资源社区
  • phpstory
  • xuzuning
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧