php soapclient 乱码,接上一篇,php的soapclient的问题
之前请求通过curl实现了,但是我还是想研究下,为什么PHP原生的soapclient构造出来的请求不行。
通过对比:
echo "请求头:\n" . $client->__getLastRequestHeaders() . "\n";
echo "请求体:\n" . htmlspecialchars_decode($client->__getLastRequest()) . "\n";
echo "返回头:\n" . $client->__getLastResponseHeaders() . "\n";
echo "返回内容:\n" . $client->__getLastResponse() . "\n";
对比这四个值与在soapui中调试请求的内容的对比,发现请求的xml始终不一致,而如何构造也毫无头绪。
于是又看了下对方的wsdl文件。看到这样一段代码:
巧合下,我去查看了以下这个
complexType
于是找到这样一篇文章:http://blog.sina.com.cn/s/blog_61bafc5a0100mki2.html
文章告诉我们,php在调用这种webservice的时候,不能直接给参数赋值,而是应该使用stdclass
这时我们要传入的参数为对象类型,就要构造这么一个对象。
具体实现如下:
$p=new StdClass();
$p->Name="adolf";
$p->Age=22;
这个对象构造完成,把此对象实例作为参数传入即可。
就这样,原生的soapclient也解决了我的问题。附代码:
$client = new SoapClient("http://192.168.1.168:8080/center/services/HIPMessageServer?wsdl", array('trace' => 1));
$tmp=new stdClass();
$tmp->action='PatientRegistryFindCandidatesQuery';
//这里不再需要cdata的实体符号了
$tmp->message=iconv('gb2312','utf-8','./a.txt');
$result = $client->HIPMessageServer($tmp);
echo "请求头:\n" . $client->__getLastRequestHeaders() . "\n";
echo "请求体:\n" . htmlspecialchars_decode($client->__getLastRequest()) . "\n";
echo "返回头:\n" . $client->__getLastResponseHeaders() . "\n";
echo "返回内容:\n" . $client->__getLastResponse() . "\n";
var_dump((get_object_vars($result)));
------------正 文 已 结 束, 感 谢 您 的 阅 读 (折雨的天空)--------------------
php soapclient 乱码,接上一篇,php的soapclient的问题相关推荐
- Html做文章查看上一篇下一篇功能,SDCMS文章添加上一篇、下一篇
SDCMS是一款小型ASP内容管理系统管理开源程序,虽然是小型的,但是主要功能都俱备.在细节方面,该款开源程序没有对内置标签进行统一的管理,不方便日后功能的修改,如果需要修改或者添加,需要去官方网站上 ...
- 织梦手机站下一篇变上一篇而且还出错Request Error!
最新的织梦dedecms程序手机版下一篇变上一篇而且还出错Request Error!,这是因为官方写错了一个地方 打开 /include/arc.archives.class.php 找到 $mli ...
- PHP实现上一篇、下一篇
//php实现上一篇.下一篇 获取当前浏览文章id$id = isset($_GET['id']) > 0 ? intval($_GET['id']) : "";下一篇文章$ ...
- 接上一篇Ansible和celery的结合,在celery的tasks.py文件里为了实现并发不阻塞的需求,用到了多进程
接上一篇Ansible和celery的结合,在celery的tasks.py文件里为了实现并发不阻塞的需求,用到了多进程 举例如下:tasks.py文件如下: import signal from m ...
- php转盘抽奖源码yii2,yii2实现 上一篇,下一篇 功能的代码实例
最近做了简答的文章详情页面,需要在页面底部加入上一篇,下一篇 按钮,分析了下,最基本需要有文章的标题和id(作为参数). 开始想的是当前的id加减1,但考虑到如果部分id丢失就不对了,于是分别查询比当 ...
- Spring整合Struts2框架的第一种方式(Action由Struts2框架来创建)。在我的上一篇博文中介绍的通过web工厂的方式获取servcie的方法因为太麻烦,所以开发的时候不会使用。...
1. spring整合struts的基本操作见我的上一篇博文:https://www.cnblogs.com/wyhluckdog/p/10140588.html,这里面将spring与struts2 ...
- 完善ext.grid.panel中的查询功能(紧接上一篇)
今天的代码主要是实现,Ext.grid.panel中的查询,其实我也是一名extjs新手,开始想的实现方式是另外再创建一个新的grid类来存放查询出的数据(就是有几个分类查询就创建几个grid类),这 ...
- ShopEx文章页增加上一篇下一篇功能
在所有的文章页中,会经常发现都会有这么一个功能,能引导用户去查看上一篇文章或下一篇文章,而在ShopEx中,我DEZEND了一下文章模型,并没有找到上一篇这样的函数功能,因此,这就需要我们手动在对应的 ...
- php 点击之后保留样式,通过不修改arc.archives.class.php而保留原有样式调上一篇下一篇...
今天织梦站长分享一个织梦内容页上下篇的调用方法,估计在大家在仿站的过程中,经常会碰到原站的上下篇很美观,比如如图类似的这种:或,但是用织梦原有调用上下篇的标签来调用,总达不到我们想要的效果,找不到原站 ...
最新文章
- 无参数的lambda匿名函数
- python pexpect 模块
- 有关中断唤醒源的思考
- 如何建立应付暂估明细查询
- SpringBoot打包时提示:Perhaps you are running on a JRE rather than a JDK?
- mysql动态扩展_动态可扩展查询MYSQL5.7JSON+虚拟列+Mybatis
- Wordpress 自定义文章类型添加 Categoried、Tags
- 创建3层的服务模板 (2)--- App-V package 和 Application Profile
- centos刻录工具_CentOS7.0 U盘刻录工具正式版
- Python 中 jieba 库
- 欧姆龙PLC的FinsTCP协议
- Excel如何快速删除图片背景?
- 怎样彻底卸载电脑上的软件
- 手机开机启动慢是什么原因_手机开机的速度太慢怎么办
- Html静态页面缓存问题,解决缓存更新不及时需清空缓存更新页面
- torch.cumsum(),torch.sum()
- win8宽带连接服务器未响应,关于Win8系统连接宽带错误的解决方法介绍
- DNS欺骗原理及工作工程分析
- “F5G+EIoT“构建能源物联网,助力电力物联网数据服务
- 自动追频超声波塑料焊接发生器电源设计
热门文章
- 配置IIS服务器!IIS-网站报500.19错误代码0x8007000d问题解决,处理程序“aspNetCore”在其模块列表中有一个错误模块“AspNetCoreModuleV2“解决
- html三个div相同高度,两个DIV高度自适应方法(左右两个DIV高度一样)
- ios 根据手势放大或缩小图片
- springboot+状态机
- 培训课后作业(1)番外篇
- Cocos Creator 性能优化——对象池
- cocoscreator如何使用对象池-对象池使用详解
- python烟花表白引大火_代码实现女孩子表白烟花效果~让你快速撩妹!
- xadmin后台管理
- 天啦噜!在家和爱豆玩“剪刀石头布”,阿里工程师如何办到?