doubi9531 2011-11-24 10:35
浏览 220
已采纳

php使用SOAP与不同的SoapAction

I'm working with a WSDL that has a different SOAP Action in the header to the one I would expect. At the moment when I call the web service, I just get like a .NET description site of a web service. In this instance it's

https://preprod.squidcard.com/ytm/sQuidpages/sQuidPWS.asmx

What URL should I actually call to get to the getPurseBalance() method as the option in the SOAP Action from the WSDL doesn't seem to be defined, is there anyway I can determine this or should I go to the web service provider?

Thanks,

  • 写回答

2条回答 默认 最新

  • douyi3676 2011-11-24 10:41
    关注

    You should not call a URL, you should post a XML to this direct same page. To know what to send to the web service you can check your URL:

    https://preprod.squidcard.com/ytm/sQuidpages/sQuidPWS.asmx?op=getPurseBalance

    Here you can also view your SoapAction and other headers to be send:

    POST /ytm/sQuidpages/sQuidPWS.asmx HTTP/1.1
    Host: preprod.squidcard.com
    Content-Type: text/xml; charset=utf-8
    Content-Length: length
    SOAPAction: "https://secure.squidcard.com/getPurseBalance"
    

    If you don't want to create XML manually you can also use the SoapClient class from PHP. You can find more information here:

    http://www.php.net/manual/en/class.soapclient.php

    $client = new SoapClient("https://preprod.squidcard.com/ytm/sQuidpages/sQuidPWS.asmx?WSDL");
    var_dump($client->__getFunctions());
    
    $client->__soapCall("getPurseBalance", array('your parameters'));
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥15 mmocr的训练错误,结果全为0
  • ¥15 python的qt5界面
  • ¥15 无线电能传输系统MATLAB仿真问题
  • ¥50 如何用脚本实现输入法的热键设置
  • ¥20 我想使用一些网络协议或者部分协议也行,主要想实现类似于traceroute的一定步长内的路由拓扑功能
  • ¥30 深度学习,前后端连接
  • ¥15 孟德尔随机化结果不一致
  • ¥15 apm2.8飞控罗盘bad health,加速度计校准失败
  • ¥15 求解O-S方程的特征值问题给出边界层布拉休斯平行流的中性曲线
  • ¥15 谁有desed数据集呀