从现有的 wsdl 获取 PHP SOAP 位置和 uri
Get PHP SOAP location and uri from existing wsdl
我必须使用现有 WSDL 的哪些属性才能在非 wsdl 模式下获得相同的功能?我想在 PHP 中使用非 wsdl SoapClient,但我无法获得正确的配置。我想使用 Salesforce SOAP API 但我不想在本地存储 wsdl 文件。我创建了那个 wsdl 文件,当我像这样使用它时它可以工作
$soap = new \SoapClient("enterprise.wsdl.xml");
但我更喜欢这种方式
$soap = new \SoapClient(null, [
"location" => "#SomeValueThatICanFindInTheActualWSDL#",
"uri" => "#SomeOtherValueThatICanFindInTheActualWSDL#",
]);
我应该将哪些 wsdl 属性用作位置和 uri?
- uri - 应该是服务的实际地址 http://someservice
- location - 您要执行的操作
如果您将 WSDL url 粘贴到您的网络浏览器中,这将给您一个大的 XML 文档(您可能需要将 ?wsdl 添加到 url),这有您要查找的 2 个变量。
要查找位置,请搜索以下节点:
<wsdl:import namespace="http://www.[some namespaceurl]" location="https://[the location url you want]" />
对于 URI,您通常只需从 URL 中删除文件名 and/or 文件夹结构。例如,如果您的服务是:
https://somedomain.com/folder1/folder2/somefile.svc?wsdl
那么 URI 可以是:
https://somedomain.com/folder1/folder2
或
https://somedomain.com/folder1
或
https://somedomain.com
您只需要反复试验,直到找到有效的方法。希望这有帮助。
我必须使用现有 WSDL 的哪些属性才能在非 wsdl 模式下获得相同的功能?我想在 PHP 中使用非 wsdl SoapClient,但我无法获得正确的配置。我想使用 Salesforce SOAP API 但我不想在本地存储 wsdl 文件。我创建了那个 wsdl 文件,当我像这样使用它时它可以工作
$soap = new \SoapClient("enterprise.wsdl.xml");
但我更喜欢这种方式
$soap = new \SoapClient(null, [
"location" => "#SomeValueThatICanFindInTheActualWSDL#",
"uri" => "#SomeOtherValueThatICanFindInTheActualWSDL#",
]);
我应该将哪些 wsdl 属性用作位置和 uri?
- uri - 应该是服务的实际地址 http://someservice
- location - 您要执行的操作
如果您将 WSDL url 粘贴到您的网络浏览器中,这将给您一个大的 XML 文档(您可能需要将 ?wsdl 添加到 url),这有您要查找的 2 个变量。
要查找位置,请搜索以下节点:
<wsdl:import namespace="http://www.[some namespaceurl]" location="https://[the location url you want]" />
对于 URI,您通常只需从 URL 中删除文件名 and/or 文件夹结构。例如,如果您的服务是:
https://somedomain.com/folder1/folder2/somefile.svc?wsdl
那么 URI 可以是:
https://somedomain.com/folder1/folder2
或
https://somedomain.com/folder1
或
https://somedomain.com
您只需要反复试验,直到找到有效的方法。希望这有帮助。