PHP 基于 Java 的 SOAP Web 服务的 XML SOAP 格式
PHP SOAP XML formatting for Java-based SOAP Web Service
当我使用 PHP 的 SOAP 库时,在 Java 上构建的 SOAP 服务器出现错误,因为信封的名称以 SOAP-ENV 为前缀。 Web 服务需要 s:
我要发送的内容:
<?xml version="1.0" encoding="UTF-8"?>
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">
<SOAP-ENV:Header>...</SOAP-ENV:Header>
<SOAP-ENV:Body>...</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
网络服务要求:
<?xml version="1.0" encoding="UTF-8"?>
<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">
<s:Header>...</s:Header>
<s:Body>...</s:Body>
</s:Envelope>
我已经阅读了 php.net'S SOAP library 文档。这部分似乎没有任何内容。
是的,对于此 Web 服务来说,它是否以 SOAP-ENV: 或 s: 为前缀很重要
这是生成 XML 当前样式的内容:
$client = new SoapClient($url, array(
'soap_version' => SOAP_1_1,
'trace' => 1,
'use' => SOAP_LITERAL)
);
$result = $client->$method($dataObject);
如有任何帮助,我们将不胜感激。
这个解决方案对我有用。
class mySoapClient extends \SoapClient
{
public function __doRequest($request, $location, $action, $version, $one_way = 0)
{
$request = str_replace(
array('SOAP-ENV', 'other-text'),
array('s', 'new-other-text'),
$request
);
return parent::__doRequest($request, $location, $action, $version, $one_way);
}
}
阵列允许您触发一系列变化。
当我使用 PHP 的 SOAP 库时,在 Java 上构建的 SOAP 服务器出现错误,因为信封的名称以 SOAP-ENV 为前缀。 Web 服务需要 s:
我要发送的内容:
<?xml version="1.0" encoding="UTF-8"?>
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">
<SOAP-ENV:Header>...</SOAP-ENV:Header>
<SOAP-ENV:Body>...</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
网络服务要求:
<?xml version="1.0" encoding="UTF-8"?>
<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">
<s:Header>...</s:Header>
<s:Body>...</s:Body>
</s:Envelope>
我已经阅读了 php.net'S SOAP library 文档。这部分似乎没有任何内容。
是的,对于此 Web 服务来说,它是否以 SOAP-ENV: 或 s: 为前缀很重要
这是生成 XML 当前样式的内容:
$client = new SoapClient($url, array(
'soap_version' => SOAP_1_1,
'trace' => 1,
'use' => SOAP_LITERAL)
);
$result = $client->$method($dataObject);
如有任何帮助,我们将不胜感激。
这个解决方案对我有用。
class mySoapClient extends \SoapClient
{
public function __doRequest($request, $location, $action, $version, $one_way = 0)
{
$request = str_replace(
array('SOAP-ENV', 'other-text'),
array('s', 'new-other-text'),
$request
);
return parent::__doRequest($request, $location, $action, $version, $one_way);
}
}
阵列允许您触发一系列变化。