DELPHI盒子
!实时搜索: 盒子论坛 | 注册用户 | 修改信息 | 退出
检举帖 | 全文检索 | 关闭广告 | 捐赠
技术论坛
 用户名
 密  码
自动登陆(30天有效)
忘了密码
≡技术区≡
DELPHI技术
lazarus/fpc/Free Pascal
移动应用开发
Web应用开发
数据库专区
报表专区
网络通讯
开源项目
论坛精华贴
≡发布区≡
发布代码
发布控件
文档资料
经典工具
≡事务区≡
网站意见
盒子之家
招聘应聘
信息交换
论坛信息
最新加入: laidabin
今日帖子: 1
在线用户: 10
导航: 论坛 -> DELPHI技术 斑竹:liumazi,sephil  
作者:
男 zhuye999 (zhuye999) ★☆☆☆☆ -
普通会员
2009/6/4 1:43:47
标题:
WebService 开发问题,通用调用程序思路 浏览:2873
加入我的收藏
楼主: 我在JAVA 下看到有个工具,可以利用 WebService WSDL 地址得到 方法的名称与参数,返回的参数等,然后画到树中,选择树中 的方法,填写对应的参数值,点执行就可以直接执行选中的方法了。

现在的问题是,如果不直接根据 WebService WSDL 地址 生成 PAS 接口单元,怎么能在调用的时候调用对应的方法呢
----------------------------------------------
delphi 千人QQ群 195216132delphi源码大全 http://item.taobao.com/item.htm?id=19273117049 Android源码大全 http://item.taobao.com/item.htm?id=21572699108 IOS源码大全 http://item.taobao.com/item.htm?id=21562383934 VC源码大全
作者:
男 zhuye999 (zhuye999) ★☆☆☆☆ -
普通会员
2009/6/4 14:33:19
1楼: 也就是 编写的用DELPHI能够连接到任意一个 WebService 上,其他的都是程序自己完成了,比如,自己获取方法,接口,参数等

记得DELPHI 的 程序以前是有一个,现在我找不到了
----------------------------------------------
delphi 千人QQ群 195216132delphi源码大全 http://item.taobao.com/item.htm?id=19273117049 Android源码大全 http://item.taobao.com/item.htm?id=21572699108 IOS源码大全 http://item.taobao.com/item.htm?id=21562383934 VC源码大全
作者:
男 lsuper (lsuper) ★☆☆☆☆ -
盒子活跃会员
2009/6/4 17:12:30
2楼: wsdl import 啊,delphi 的源码里甚至于包括这个 exe 的源码
----------------------------------------------
-
作者:
男 zhuye999 (zhuye999) ★☆☆☆☆ -
普通会员
2009/6/4 17:30:46
3楼: wsdl import 啊,delphi 的源码里甚至于包括这个 exe 的源码

不要手动 import 生成 PAS,这个是使用程序实现的,也就是说不生成接口PAS 的情况下如何做
----------------------------------------------
delphi 千人QQ群 195216132delphi源码大全 http://item.taobao.com/item.htm?id=19273117049 Android源码大全 http://item.taobao.com/item.htm?id=21572699108 IOS源码大全 http://item.taobao.com/item.htm?id=21562383934 VC源码大全
作者:
男 rarnu (橙子) ★☆☆☆☆ -
普通会员
2009/6/4 19:01:53
4楼: 用SoapToolkit
----------------------------------------------
Rarnu / CnPack Developer
联系方式GTalk: rarnu1985@gmail.com
作者:
男 rarnu (橙子) ★☆☆☆☆ -
普通会员
2009/6/4 19:08:09
5楼: procedure TForm1.FormCreate(Sender: TObject);
var
  ServiceSoap: OleVariant;
  Hello: string;
  Sum: Integer;
begin
  ServiceSoap := CreateOleObject('MSSOAP.SoapClient30');
  ServiceSoap.MSSoapInit(WSDLAddress);
  Hello := ServiceSoap.HelloWorld;
  ShowMessage(Hello);
  Sum := ServiceSoap.Add(1,2);
  ShowMessage(IntToStr(Sum));
  ServiceSoap := Unassigned;
end;
----------------------------------------------
Rarnu / CnPack Developer
联系方式GTalk: rarnu1985@gmail.com
作者:
男 zhuye999 (zhuye999) ★☆☆☆☆ -
普通会员
2009/6/5 2:32:11
6楼: SoapToolkit 不是个好办法,还需要额外的安装

李维 的 D6.SOAP_WEB.SERVICE.Program 上面的第13章有介绍好像讲了部分,但是还不是很清楚,我也见过DELPHI版开发的程序,电脑里有,但是找不到了
----------------------------------------------
delphi 千人QQ群 195216132delphi源码大全 http://item.taobao.com/item.htm?id=19273117049 Android源码大全 http://item.taobao.com/item.htm?id=21572699108 IOS源码大全 http://item.taobao.com/item.htm?id=21562383934 VC源码大全
作者:
男 james_ (james_) ★☆☆☆☆ -
盒子活跃会员
2009/6/5 12:18:54
7楼: look look
----------------------------------------------
-
作者:
男 penal (法) ★☆☆☆☆ -
盒子活跃会员
2009/6/5 13:17:32
8楼: 好像目前还看到这种控件,因为不太需要. 如果对soap协议了解得足够多, 应该可以手工构造出数据包来调用的. 控件也是人写的, 期待楼主的作品.
----------------------------------------------
-
作者:
男 qingyun (qingyun) ★☆☆☆☆ -
盒子活跃会员
2018/6/28 10:21:52
9楼: 期待不用import的方法
----------------------------------------------
青云论坛
作者:
男 l_star (l.star) ★☆☆☆☆ -
普通会员
2018/6/28 11:59:52
10楼: 直接post
----------------------------------------------
-
作者:
男 lsuper (lsuper) ★☆☆☆☆ -
盒子活跃会员
2018/6/29 0:28:22
11楼: 抓个正常通信的包自己 xml+httpsend 捏 ~
----------------------------------------------
-
作者:
男 msl6 (宝宝) ▲▲▲△△ -
普通会员
2018/6/29 14:26:14
12楼: 我也想要这样的处理WebService方式,对接多了,经常要添加代码
----------------------------------------------
成功源于专注
作者:
男 msl6 (宝宝) ▲▲▲△△ -
普通会员
2018/6/29 14:28:40
13楼: 我看到别人HIS jave写的 有这样的实现过,他们调用我们的WebService.
只要我们给WSDL + 方法名,他们把这个要系统里面注册一下(咋处理,不懂),要就正常调用WebService
----------------------------------------------
成功源于专注
作者:
男 synnefo (Syn) ▲▲▲▲△ -
普通会员
2018/6/29 14:53:52
14楼: 楼上已经有人回复了,直接post即可,webservice不过是经过soap协议封装而已,报文内容不同

<soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope"; xmlns:urn="urn:命名空间">
<soap:Header/>
<soap:Body>
   <urn:方法名>
      <arg0></arg0>
      <arg1><![CDATA[ XXXXXXXXXX ]]></arg1>
   </urn:HIPMessageServer>
</soap:Body>
</soap:Envelope>

POST的时候,关注方法名和参数即可,也就是 soap:Body 中的内容,soap协议只认参数个数,直接组接好 soap:Body 即可

有问题欢迎指正讨论
----------------------------------------------
-
作者:
男 pcplayer (pcplayer) ★☆☆☆☆ -
普通会员
2018/7/14 23:12:01
15楼: WebService 在 delphi 上的实现,是 Delphi 帮你把基于 HTTP 的对 XML 的字符串内容的收发,直接转换成了对函数的调用。JAVA 也是这样做的。这个就是传说的 RPC,只是通讯层用了 XML 来作为数据的格式,然后通讯协议采用 http。当然,对于 SOAP 来说,通讯协议不一定非要 http,只是 WebService 既然是 WEB,当然是 http.

楼上有人说自己解析 XML,如果这样做,当然没问题。就是做起来比较麻烦。而 Delphi 的 WebService 的函数调用,就是帮你把 XML 的解析做了。

楼主的问题我看得不是很明白。我猜楼主的意思不是如何在 Delphi 底下调用 JAVA 写的 WebService,而是如何用 Delphi 写的程序在运行期调用一个事先不知道的 WebService。

如果有一个 Java 写的 WebService,然后,我要用 Delphi 写个程序去调用,这个简单,设计期,用 Delphi 提供的 WSDL importer 这个工具去访问那个 Java 的 WebService 提供的 URL,Delphi 就能帮你创建 DELPHI 的代码能用的这个 WebService 的调用接口代码。剩下的问题就自己去写客户端代码了。

如果设计期没有针对这个 WebService 生成对应的 Delphi 代码并编译到你的程序里,你的程序在事先不知道这个 WebService 的情况下,运行期想要去调用这个 WebService 提供的服务,Delphi 不支持。

可能有第三方控件支持吧?
----------------------------------------------
-
信息
登陆以后才能回复
Copyright © 2CCC.Com 盒子论坛 v3.0.1 版权所有 页面执行66.40625毫秒 RSS