搜索
查看: 455|回复: 3

web.soapclient 调用失败

[复制链接]

1

主题

9

帖子

59

积分

一级会员

Rank: 2

积分
59
发表于 2018-9-7 16:47:35 | 显示全部楼层 |阅读模式
//测试代码如下
import web.soapClient;;
        io.open();
        var soap=web.soapClient("http://www.kdclilab.com:8093/IHospitalInterface/BasicHttpBinding");
        var transArray,err=soap.ILoadLIMSSampleInfosGetResult("2018-07-10", "2018-09-25", "J19149", "123456", "J19149");
        io.print( string.join( transArray,'\r\n' ) )
        execute("pause")
回复

使用道具 举报

185

主题

2541

帖子

1万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
13974
发表于 2018-9-8 00:46:32 | 显示全部楼层

首先,你这个服务端根本就没有“ILoadLIMSSampleInfosGetResult”这个函数。
有个“LoadLIMSSampleInfosGetResult”他的返回值也不是一个数组,所以也不可能会用到string.join。
如果你都不知道要调用的函数名是什么,也不知道他有些功能是干什么的,那就比较奇怪了。

WebService过于复杂,在C#之外就更没什么人愿意用了,现在基本已经被更简洁的REST取代。
web.soapClient 的实现也比较简单,一共就没有几句代码,所以一些比较复杂的接口肯定支持不了。

所以如果遇到不支持的WebService,尽量就不要用了,改用更简单的REST接口,没有必要去自寻烦恼。
如果一定要用的话,可以在C#里先调用那个WebService写一个DLL,然后aardio可以调用C#的dll。
回复

使用道具 举报

185

主题

2541

帖子

1万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
13974
发表于 2018-9-8 00:48:43 | 显示全部楼层
如果不会用C#的话,也可以在aardio里直接调用C#创建Web服务。
这个是我刚加的功能,示例:
import dotNet;
import console;

var clr = dotNet.clr();
var appDomain = clr.createAppDomain();
var webService = appDomain.createWebService("http://www.kdclilab.com:8093/IHospitalInterface/BasicHttpBinding")  

var hospitalInterfaceBiz = webService.createInstance("IHospitalInterfaceBiz");
var ret = hospitalInterfaceBiz.LoadLIMSSampleInfosGetResult("2018-07-10", "2018-09-25", "J19149", "123456", "J19149");

console.dump(ret);
console.pause();


回复

使用道具 举报

1

主题

9

帖子

59

积分

一级会员

Rank: 2

积分
59
 楼主| 发表于 2018-9-8 15:47:43 | 显示全部楼层
非常感谢,Jacen的回复,Jacen的回答已经完全解决了我的问题.谢谢~
(我竟然把调用的方法名字也搞错了,真丢人...)
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

手机版|未经许可严禁引用或转载本站文章|站长邮箱|aardio.com|aardio官方社区 ( 皖ICP备09012014号 )

GMT+8, 2018-12-18 00:44 , Processed in 0.062500 second(s), 23 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表