java调用C# WebService接口

    这两天在负责公司系统与其他公司的平台订单的对接工作,在没看对接文档前,心里还想着到时候照着接口文档的参数规范去传,应该很容易可以完成。但当拿到对方的接口文档,看到WebService的时候,心情就变了,没有写过java调webService接口,怎么办……
    没有接触过,就先查了查,看看示例,该用什么方式去调。看到的方式大概有三种:1. HttpClient 2. HttpURLConnection 3. 插件生成客户端代码。
    有了方向之后,就开始写代码了,采用的方式是HttpClient,上午写好了,下午开始调试,就一直出问题,各种HTTP请求的错误码,404,400,500,都遇到过,不明白为什么调不通,就开始换其他方式,又改成了用HttpURLConnection的方式,还是返回错误结果。
    找对接的那边的人问了问,他跟我说了句,他们服务使用C#写的,于是我又换了个方式,直接用的RPC的Call方法调用,结果可以调通了,但是得到的一直是他们返回给我的错误码,通过对方的监听,他告诉我他那边接收到的参数都是null值,又开始查资料找解决方法,尝试了各种解决方案,最后还是没能解决。
    第二天一到公司,没其他办法了,就尝试用生成客户端代码的方法。我的开发工具用的是MyEclipse,自带web Service的插件,所以就直接用了,其他开发工具的话,没有自带插件,可以先下载安装。下面就看看如何用myEclipse生成我们的Java代码:
        1. 新建一个WebService Client项目
    这里写图片描述
        2. 输入wsdl url地址或导入wsdl文件
    这里写图片描述
        3. 之后就一直next或直接finish,生成之后,我们就可以在项目中看到java类,就是通过接口服务生成的
    这里写图片描述
        4. 生成代码之后,我们不需要做任何改动,就可以直接写个main方法测试其中的接口了。下面是我自己测试的一个代码示例:
public static void main(String[] args) {
        String AppKey = "123456";
        Long currentTime = System.currentTimeMillis();
        String AppSign = createSign(AppKey, currentTime.toString());
        EC service = new EC();
        ECSoap portType = service.getECSoap();
        String result = portType.login(AppKey, AppSign, currentTime.toString());
        System.out.print(result);
    }
        有了这套代码之后,我就将这些直接搬到自己的项目中,添加一些关于webService的jar包,我就可以直接调用他们的接口了。一天的时间,也总算是完成了和对方的对接工作。
        对接完成了,但其实还是不太明白为什么自己用HttpClient或HttpURLConnection等各种方式都行不通。第二天还想着找个和他们对接过的人请教请教用的什么方式,早上用了这个插件方法成功了,就一直在沟通联调,也顾不上问他,等有时间了,我还是要问问,或许能解答我的疑惑。
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 7
    评论
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值