如何确定有效的 SoapAction?

2021-12-24 00:00:00 web-services php soap

我正在使用 NuSoap PHP 库 调用一个 webservice.webservice 似乎使用 .NET;每次我调用它时,都会收到关于使用无效 SoapAction 标头 的错误.发送的标头是一个空字符串.如何找到服务器期望的 SoapAction?

I'm calling a webservice using the NuSoap PHP library. The webservice appears to use .NET; every time I call it I get an error about using an invalid SoapAction header. The header being sent is an empty string. How can I find the SoapAction that the server is expecting?

推荐答案

通过查看服务的 WSDL,您可以看到您正在调用的服务操作期望的 SoapAction.对于 .NET 服务,您可以通过在 Web 浏览器中打开服务的 URL 并在末尾附加 ?wsdl 来访问 WSDL.

You can see the SoapAction that the service operation you're calling expects by looking at the WSDL for the service. For .NET services, you can access the WSDL by opening a web browser to the url of the service and appending ?wsdl on the end.

在 WSDL 文档中,您可以看到在操作"节点下(在绑定"下)定义的 SoapActions.例如:

Inside the WSDL document, you can see the SoapActions defined under the 'Operation' nodes (under 'Bindings'). For example:

<wsdl:operation name="Execute">
  <soap:operation soapAction="http://tempuri.org/Execute" style="document" />

找到您尝试调用的操作的操作节点,您会在那里找到它期望的 Soap Action.

Find the operation node for the operation you're trying to invoke, and you'll find the Soap Action it expects there.

相关文章