- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试使用函数“SoapVar”发布我的 SoapHeader。当我打印变量的信息时,我可以看到发布的数据不正确:
SoapHeader Object
(
[namespace] => http://www.example.com/
[name] => Header
[data] => SoapVar Object
(
[enc_type] => 147
[enc_value] => xxx
)
[mustUnderstand] =>
)
SoapVar Object
类型的 [data]。 [data] 还有对象 [enc_type] => 147
和 [enc_value] => xxx
。我不知道这些对象是什么意思,但我得到的结果是:“缺少访问 token ”。
当我使用以下脚本时得到这个结果:
$headerVar = new SoapVar('<Header><Header><AccessToken>xxx</AccessToken></Header></Header>', XSD_ANYXML);
$header = new SoapHeader('http://www.example.com/', 'Header', $headerVar);
当我尝试使用数组而不是 XML 调用时,我得到以下 SoapHeader:
SoapHeader Object
(
[namespace] => http://www.example.com/
[name] => Header
[data] => Array
(
[AccessToken] => xxx
)
[mustUnderstand] =>
)
我为这个结果使用的脚本是:
$header = new SoapHeader('http://www.example.com/', 'Header', array('AccessToken' =>'xxx'));
有人知道我需要更改什么才能让 SoapVar
的脚本正常工作吗?
这是我的完整脚本:
$cluster = $result->cluster;
$qq = new domDocument();
$qq->loadXML($session->__getLastResponse());
$newurl = $cluster.'/services/process.asmx?wsdl';
try
{
$client = new SoapClient($newurl);
$headerVar = new SoapVar('<Header><Header><AccessToken>xxx</AccessToken></Header></Header>', XSD_ANYXML);
$header = new SoapHeader('http://www.example.com/', 'Header', $headerVar);
$client->__setSoapHeaders($header);
echo 'Header: <br />';
echo '<pre>';
print_r($header);
echo '</pre>';
}
catch (SoapFault $e)
{
echo $e->getMessage();
}
try
{
echo '<br /><br />XML Result:<br /><br />';
$xml = "";
$result = $client->__soapCall('ProcessXmlString', array(array('xmlRequest'=>$xml)), null, $header);
echo '<xmp>';
print_r($result->ProcessXmlStringResult);
echo '</xmp>';
}
catch (SoapFault $e)
{
echo $e->getMessage();
}
最佳答案
您当前代码的问题是您没有设置节点名称。这就是为什么您的数据(enc_value)存在但您的节点名称(enc_name)丢失的原因
$headerVar = new SoapVar('<Header><Header><AccessToken>xxx</AccessToken></Header></Header>', XSD_ANYXML, null, null, 'AccessToken');
$header = new SoapHeader('http://www.example.com/', 'Header', $headerVar);
这将输出:
SoapHeader Object
(
[namespace] => http://www.example.com/
[name] => Header
[data] => SoapVar Object
(
[enc_type] => 147
[enc_value] =>
xxx
[enc_name] => AccessToken
)
[mustUnderstand] =>
)
请注意,虽然您只看到“xxx”值,但您的 XML 数据的其余部分都存在。如果我执行 var_dump,我可以看到 'enc_value' == string(64)
我不知道您的端点期望什么,因此该部分可能需要一些调整。
关于php - 错误的结果 SoapVar,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60111809/
我正在尝试使用函数“SoapVar”发布我的 SoapHeader。当我打印变量的信息时,我可以看到发布的数据不正确: SoapHeader Object ( [namespace] => h
有没有人知道如何向 SoapVar 对象添加属性?看起来这很简单,但我无法接受/工作。 我查看了 PHP 文档和以下 stackoverflow 问题: Documentation on SoapVa
我正在尝试向 soap 请求添加一些属性。 PHP.net ( http://php.net/manual/en/soapvar.soapvar.php ) 和 here 上评分最高的评论和 here
我想创建具有如下属性的 soapVars: yyy 这是否可以通过 SoapVar 构造函数实现,但不使用 XSD_ANYXML 和原始 xml 字符串? 最佳答案 最好的方法是: 结果是: yyy
我需要在我的 SOAP 请求中包含此节点(使用 1.1): ricky@email.net password 所以我有以下 PHP: $client = new SoapClient("ht
在 PHP 中,我们有 SoapVar 和 SoapParam 类。我已经困惑很久了,因为在 php.net 上没有关于它们的合适文档。 今天我惊讶地发现这些行将在 XML 输入中产生完全相同的结果:
如何向 PHP SoapVar 对象添加属性? (PHP5、SoapClient、SoapVar) 我有一个 SOAP 客户端请求情况,其中有重复的部分(“答案”),每个部分都有一个问题和选择。这都是
我的目标是能够创建一个可以包含如下项目的 soap 请求: IAG Group Ticket # 但是,我能想到的 soapvar 和 soapparam 的每一种组合
我必须使用 SoapClient 对象调用 SOAP Web 服务。其中一个参数必须包含 CDATA 部分中包含的一些 XML,如下所示: baz]]> 注意节点命名空间,这是我痛苦的根源......
谁能解释一下如何在 php 中使用 soapvar 为 anytype 参数分配类型?
这个问题涉及在 PHP SOAP 客户端中使用 SoapParam 和 SoapVar 来处理重复元素,其中请求不能被构造为关联数组。更具体地说,它解决了将 SoapParam/SoapVar 用于复
我是一名优秀的程序员,十分优秀!