DELPHI盒子
!实时搜索: 盒子论坛 | 注册用户 | 修改信息 | 退出
检举帖 | 全文检索 | 关闭广告 | 捐赠
技术论坛
 用户名
 密  码
自动登陆(30天有效)
忘了密码
≡技术区≡
DELPHI技术
lazarus/fpc/Free Pascal
移动应用开发
Web应用开发
数据库专区
报表专区
网络通讯
开源项目
论坛精华贴
≡发布区≡
发布代码
发布控件
文档资料
经典工具
≡事务区≡
网站意见
盒子之家
招聘应聘
信息交换
论坛信息
最新加入: jeff1314
今日帖子: 22
在线用户: 10
导航: 论坛 -> 数据库专区 斑竹:liumazi,waterstone  
作者:
男 sxbug (太阳雨) ★☆☆☆☆ -
盒子活跃会员
2017/7/2 23:34:36
标题:
delphi处理soap的最合理的办法是什么? 浏览:1942
加入我的收藏
楼主: 没有处理过soap的问题,想依赖Delphi的控件简化soap的处理,请高人指点。
目前我遇到的应用是:采用idHttp发送一个请求字符串,IdHTTP1.URL.URLEncode (请求字符);其中请求字符为 soap_method=GetPatInfo&Input=<Request><TradeCode>.....可能会包含汉字。


接收到的返回字符串,是<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:s="http://www.w3.org/2001/XMLSchema">
<SOAP-ENV:Body>
<GetPatInfoResponse xmlns="http://tempuri.org">
<GetPatInfoResult>
<![CDATA[
<Response><ResultCode>0</ResultCode><ResultContent></ResultContent><PatientID>00067</PatientID><PatientName>张三</PatientName><Sex>女</Sex><SexCode>2</SexCode><DOB>1987-04-15</DOB><TelephoneNo></TelephoneNo><Mobile>1501870003</Mobile>.。。。。。。这样的返回串,如何能快速处理,形成 姓名 张三 性别 女 等,数据库也存储的信息。如何处理会比较方便?

谢谢!请高人指点
----------------------------------------------
-
作者:
男 sxbug (太阳雨) ★☆☆☆☆ -
盒子活跃会员
2017/7/2 23:36:56
1楼: 接收的字符,我采用这些办法接收:idHttp1.Get(返回值, stream);   UTF8Decode(stream.DataString);通过处理后,有时有些汉字成了乱码(不是所有汉字)。有办法处理吗?
----------------------------------------------
-
作者:
男 sonicer (sonicer) ★☆☆☆☆ -
盒子活跃会员
2017/7/3 9:31:15
2楼: thttprio
----------------------------------------------
-
作者:
男 wang_80919 (Flying Wang) ★☆☆☆☆ -
普通会员
2017/7/3 9:34:58
3楼: 导入 wsdl ,不就可以调用了吗?
----------------------------------------------
(C)(P)Flying Wang
作者:
男 bahamut8348 (leonna) ★☆☆☆☆ -
普通会员
2017/7/3 10:44:54
4楼: 你要确定是utf8编码才能用utf8解码。
另外,还要确定有没有经过百分号编码,一般utf8都会和百分号编码一起用的。

再有就是,你也可以尝试使用mutibytetowidechar这个api函数来转
----------------------------------------------
--
作者:
男 l_star (l.star) ★☆☆☆☆ -
普通会员
2017/7/3 12:12:05
5楼: idHttp1 返回xml得自己处理
----------------------------------------------
-
作者:
男 star5 (星五) ★☆☆☆☆ -
盒子活跃会员
2017/7/5 8:30:23
6楼: 完全可以使用http post来操作soap接口,delphi导入wsdl比较麻烦,而且会出错,建议自行拼接xml去post接口,效果是一样的,而且灵活方便。
----------------------------------------------
博客 - http://offeu.com
脚本模型 - http://webpascal.com
需要短信接口的请联系我,可发行业与营销内容。
作者:
男 pcplayer (pcplayer) ★☆☆☆☆ -
普通会员
2017/7/7 12:09:21
7楼: SOAP 通常是 Web Service 里面用的吧?如果服务器端是 Web Service,你直接用 Delphi 的 WebService 框架去调用它就行了,自己不用费心去解析它。
----------------------------------------------
-
信息
登陆以后才能回复
Copyright © 2CCC.Com 盒子论坛 v3.0.1 版权所有 页面执行62.5毫秒 RSS