php 调用 .net webservice 接口出现问题

Myel 2018-10-12 11:43:58
第一个报错:SOAP-ERROR: Encoding: object has no 'ArrayOfNoticeDataItem' property
第二个报错:SOAP-ERROR: Encoding: object has no 'NoticeData' property


$client = new SoapClient('http://xxxxxxx/ws/CIA2A.EAI.AP2HCM:NoticeInsert_WS2?WSDL');
$param = array(
'DocID'=>'BX201892620001'
'Approver_EmpNo'=>'10044040'
'Apply_Name'=>'XXX'
'Apply_Date'=>'2018-09-12 23:52:12'
);
$result = $client->__call('NoticeInsert2',array( 'NoticeData' =>$param,'out'=>'0' ));
各位大神们有没有知道怎么解决这样的问题的,求解答
...全文
489 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
Myel 2018-10-13
  • 打赏
  • 举报
回复
引用 5 楼 xuzuning 的回复:
__getTypes的结果可知: 参数是一个 NoticeInsert 类型的数据 NoticeInsert 有一个 ArrayOfNoticeData 类型的成员 NoticeData ArrayOfNoticeData 有一个 NoticeData 类型的成员 ArrayOfNoticeDataItem 综合起来,参数应是这样结构的数组
array(
	'NoticeData' => array(
		'ArrayOfNoticeDataItem' => array(
			'SN' => '',
			'LOCATION => '',
			'SYSTEMNAME => '',
			'APNAME => '',
			'DOCID => '',
			'APPROVER_EMPNO => '',
			'APPLY_NAME => '',
			'APPLY_DATE => '',
			'DOCLINK => '',
			'DESCRIPTION => '',
			'DOCUNIQUEID => '',
			'ARRIVAL_TIME => '',
			'UPDATEDT => '',
		)
	)
)
感谢您,非常感谢,这个问题困惑了好久,之前我试过这种的,但是没有把参数名放对位置ArrayOfNoticeDataItem=>array("NoticeData'=>')写成这种的 了,非常感谢,可以解决我的问题了,可否加个QQ,给你发个payoff
xuzuning 2018-10-13
  • 打赏
  • 举报
回复
__getTypes的结果可知:
参数是一个 NoticeInsert 类型的数据
NoticeInsert 有一个 ArrayOfNoticeData 类型的成员 NoticeData
ArrayOfNoticeData 有一个 NoticeData 类型的成员 ArrayOfNoticeDataItem
综合起来,参数应是这样结构的数组
array(
'NoticeData' => array(
'ArrayOfNoticeDataItem' => array(
'SN' => '',
'LOCATION => '',
'SYSTEMNAME => '',
'APNAME => '',
'DOCID => '',
'APPROVER_EMPNO => '',
'APPLY_NAME => '',
'APPLY_DATE => '',
'DOCLINK => '',
'DESCRIPTION => '',
'DOCUNIQUEID => '',
'ARRIVAL_TIME => '',
'UPDATEDT => '',
)
)
)
Myel 2018-10-13
  • 打赏
  • 举报
回复
引用 1 楼 xuzuning 的回复:
记得跟你说过了! $result = $client->__call('NoticeInsert2',array( 'NoticeData' =>$param,'out'=>'0' )); 应写作 $result = $client->__call('NoticeInsert2',array( array( 'NoticeData' =>$param,'out'=>'0' ))); 对于 第一个报错:SOAP-ERROR: Encoding: object has no 'ArrayOfNoticeDataItem' property 虽然说是没有 ArrayOfNoticeDataItem 属性,但也没在代码中看到 ArrayOfNoticeDataItem 字样 第二个报错:SOAP-ERROR: Encoding: object has no 'NoticeData' property 没有 NoticeData 属性,显然你没有按照 WSDL 的指引去做
我是用$result = $client->__call('NoticeInsert2',array( array( 'NoticeData' =>$param)))); 这种来访问的,但是在array(里面加上‘out’=>0)还是会报错:SOAP-ERROR: Encoding: object has no 'ArrayOfNoticeDataItem' property 昨天我又叫那边写一个这种类型的WSDL api,使用$result = $client->__call('NoticeInsert2',array( array('NoticeData' =>$param ))); 小弟有什么错,麻烦您指正,第一次做这样的API
Myel 2018-10-13
  • 打赏
  • 举报
回复
引用 2 楼 xuzuning 的回复:
既然是寻求帮助! 那么你,要么给出 可供访问的 url 和 有关数据,由我替你写代码 要么 给出 __getFunctions 可用调用的方法 __getTypes 可调用方法所涉及的数据类型 的结果
url给出您是访问不了的,有网络限制的,下面是__getFunctions和__getTypes的结果 array(1) { [0]=> string(60) "NoticeInsertResponse NoticeInsert2(NoticeInsert $parameters)" } array(4) { [0]=> string(54) "struct NoticeInsert { ArrayOfNoticeData NoticeData; }" [1]=> string(265) "struct NoticeData { string SN; string LOCATION; string SYSTEMNAME; string APNAME; string DOCID; string APPROVER_EMPNO; string APPLY_NAME; string APPLY_DATE; string DOCLINK; string DESCRIPTION; string DOCUNIQUEID; string ARRIVAL_TIME; string UPDATEDT; }" [2]=> string(63) "struct ArrayOfNoticeData { NoticeData ArrayOfNoticeDataItem; }" [3]=> string(62) "struct NoticeInsertResponse { string RETURN; string COUNT; }" }
xuzuning 2018-10-12
  • 打赏
  • 举报
回复
既然是寻求帮助!
那么你,要么给出 可供访问的 url 和 有关数据,由我替你写代码
要么 给出
__getFunctions 可用调用的方法
__getTypes 可调用方法所涉及的数据类型
的结果
xuzuning 2018-10-12
  • 打赏
  • 举报
回复
记得跟你说过了!
$result = $client->__call('NoticeInsert2',array( 'NoticeData' =>$param,'out'=>'0' ));
应写作
$result = $client->__call('NoticeInsert2',array( array( 'NoticeData' =>$param,'out'=>'0' )));

对于
第一个报错:SOAP-ERROR: Encoding: object has no 'ArrayOfNoticeDataItem' property
虽然说是没有 ArrayOfNoticeDataItem 属性,但也没在代码中看到 ArrayOfNoticeDataItem 字样
第二个报错:SOAP-ERROR: Encoding: object has no 'NoticeData' property
没有 NoticeData 属性,显然你没有按照 WSDL 的指引去做

20,359

社区成员

发帖
与我相关
我的任务
社区描述
“超文本预处理器”,是在服务器端执行的脚本语言,尤其适用于Web开发并可嵌入HTML中。PHP语法利用了C、Java和Perl,该语言的主要目标是允许web开发人员快速编写动态网页。
phpphpstorm 技术论坛(原bbs)
社区管理员
  • 开源资源社区
  • phpstory
  • xuzuning
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧