关于php调Webservice的问题

tilun_099 2015-05-28 03:10:04
try{
$client = new SoapClient("http://api.yousite.com/web/CoreService?wsdl");
$param=array($xml);
$ret = $client->__call('invoke',$param);
$result = ob2ar($ret);
print_r($ret);exit;
}catch(Exception $e){
echo $e->getMessage();
}

返回错误:SOAP-ERROR: Parsing WSDL: Couldn't load from '****************' : SYSTEM or PUBLIC, the URI is missing
各位大哥,帮我看下,错在哪儿了,感激不尽!
...全文
337 13 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
tilun_099 2015-06-04
  • 打赏
  • 举报
回复
崩溃了都,好几天一直没解决。代码贴出来了。求指点迷津! try{ $url="http://sms.wintax.cn/axis/services/CoreService?wsdl"; $client = new SoapClient($url); //print_r($client->__getFunctions()); //print_r($client->__getTypes());exit; $param=array($xml,''); $resp = $client->__call('invoke',$param); print_r($resp);exit; }catch(Exception $e){ $err_str=$e->getMessage(); echo $err_str; } 报错: SOAP-ERROR: Parsing WSDL: Couldn't load from 'http://sms.wintax.cn/axis/services/CoreService?wsdl' : failed to load external entity "http://sms.wintax.cn/axis/services/CoreService?wsdl"
tilun_099 2015-06-04
  • 打赏
  • 举报
回复
多谢版主,感激不尽。
tilun_099 2015-06-04
  • 打赏
  • 举报
回复
NND,这个问题也解决了,原来要加参数名。 $param_arr=array('in0'=>$post_xml,'in1'=>'');
xuzuning 2015-06-04
  • 打赏
  • 举报
回复
invokeResponse invoke(invoke $parameters) 告诉你: invoke 方法需要一个 invoke 结构的参数 返回一个 invokeResponse 结构 struct invoke { string in0; string in1; } 告诉你 invoke 结构有两个字符型变量,分别命名为 in0 和 in1 php 没有结构的概念,所以要用关联数组代替 $param_arr = array( 'in0' => '数据1', 'in1' => '数据2' ); $ret = $client->invoke($param_arr); 由结构 struct invokeResponse { string out; } 可知:在返回的对象中,返回的数据放在名为 out 的属性里
tilun_099 2015-06-04
  • 打赏
  • 举报
回复
我现在请求另一个webService时,又出现了一个新问题。。 $client = new SoapClient("http://www.etaxcn.com/webservice/services/CoreService?wsdl"); print_r($client->__getFunctions()); print_r($client->__getTypes()); $param_arr=array($post_xml,''); $ret = $client->invoke($param_arr); 有报文返回,但是接口方告诉我,得到的xml是空串。可我echo了xml,真真切切不是空的呀。 这种是什么情况呀。最近弄webservice太头疼了。 Array ( [0] => invokeResponse invoke(invoke $parameters) ) Array ( [0] => struct invoke { string in0; string in1; } [1] => struct invokeResponse { string out; } ) stdClass Object ( [out] => <?xml version="1.0" encoding="UTF-8" ?><root identity="BS44O9CP71L764DPQEUJURTAMHP3C8JO"><head><service><replyCode>FBRP011001</replyCode><replyMsg></replyMsg></service><createTime>1433404114418</createTime></head></root> )
tilun_099 2015-06-04
  • 打赏
  • 举报
回复
万万没想到呀,居然真的是这个问题,太操蛋了。弄了我三天,想尽了办法,还重编译了PHP。原来真是目标接口没把我IP加到白名单。。
tilun_099 2015-06-04
  • 打赏
  • 举报
回复
版主,是有来源限制的,是因为这个才引起的报错么?
xuzuning 2015-06-04
  • 打赏
  • 举报
回复

显然服务器做了来源检查
待我功成名就 2015-06-01
  • 打赏
  • 举报
回复
访问地址错误
tilun_099 2015-05-28
  • 打赏
  • 举报
回复
版主,地址真的可以打开的。 <wsdl:message name="batchSendSmsResponse"> <wsdl:part name="batchSendSmsReturn" type="soapenc:string"/> </wsdl:message> <wsdl:message name="invokeResponse1"> <wsdl:part name="invokeReturn" type="soapenc:string"/> </wsdl:message> <wsdl:message name="batchSendSmsRequest"> <wsdl:part name="xml" type="soapenc:string"/> </wsdl:message> <wsdl:message name="invokeRequest"> <wsdl:part name="xml" type="soapenc:string"/> ..................
xuzuning 2015-05-28
  • 打赏
  • 举报
回复
你把地址改了,怎么能知道你写对了没有 况且你各处的错误信息也显示地址不存在,不会你也改了吧
tilun_099 2015-05-28
  • 打赏
  • 举报
回复
版主,地址可以访问的。上面的地址是我改了的。。呵呵。
xuzuning 2015-05-28
  • 打赏
  • 举报
回复
错误信息显示:目标地址无法加载 用浏览器也确实访问不到

20,398

社区成员

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

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