首页新闻找找看学习计划

C#调用java开发的Webservice

0
悬赏园豆:100 [已解决问题] 解决于 2012-06-06 13:45

最近在做一个银联积分卡的项目 ,功能很简单,就是根据会员的积分卡卡号,再通过Webservice接口从银联那边获取积分卡的余额信息。

HttpWebRequest request = (HttpWebRequest)WebRequest.Create(Url);

通讯过程要必须建立SSL,有一个密钥库,证书库

我直接这样

//创建证书文件
X509Certificate objx509 = new X509Certificate(System.Web.HttpContext.Current.Server.MapPath("/Webservice/ssl/clientStore1.pfx"), "123456");
//创建证书文件
X509Certificate objx5092 = new X509Certificate(System.Web.HttpContext.Current.Server.MapPath("/Webservice/ssl/clientStore2.pfx"), "654321");

//添加到请求里
request.ClientCertificates.Add(objx509);
request.ClientCertificates.Add(objx5092);

第一次接触 所以。。。

刚刚看到这

http://blog.csdn.net/zlj002/article/details/6339380

两个平台底层的访问原理不同,

通过本地使用JAVA来调用WS打包成一个代理方法并发布到本地TOMCAT,再通过.net使用request的方法返回结果!

 

我的问题就是.net和java平台底层的访问原理不同有哪些不同?

问题补充:

今天看到老大做的webservice  忽然无言以对,

找到问题原因了。

xml报文拼接之后要转化为soap报文发送,soap要符合1.2标准。

当然之前都没听说过soap报文。

仰望繁星的猪的主页 仰望繁星的猪 | 菜鸟二级 | 园豆:286
提问于:2012-05-05 17:42
< >
分享
最佳答案
0

Webservice是标准的。你可以在.NET这边,使用原生的http请求(HttpWebRequest),将服务者提供的soap消息格式做参数替换,然后当作http协议的实体内容发送到webservice所寄存的服务器上,然后WS会根据soap消息中参数,做出响应。你在客户端接收响应消息,不就好了?

当然,你也可以在.NET端去动态调用,根据WSDL文件描述,自己在.NET这边生成服务代理类,手动调用编译器去生成,然后用反射的方式去调用WS提供的webmethod。

实现思路就是这样的

收获园豆:70
丁码农 | 菜鸟二级 |园豆:437 | 2012-05-06 23:30

"在.NET这边生成服务代理类 " 这个会因为未建立SSL而。。。

仰望繁星的猪 | 园豆:286 (菜鸟二级) | 2012-05-07 18:13

思路是對的 ,我錯的地方是對soap報文不瞭解。發送的是拼接而成的XML字符串,不是標準的soap報文。所以對方讀取錯誤。

仰望繁星的猪 | 园豆:286 (菜鸟二级) | 2012-06-06 13:47
其他回答(6)
0

Webservice 存在就是解决不同平台的问题了.Webservice基于的是xml,soap协议来折,跟平台毛关系.

不知道你说的平台底层的访问原理指代的什么?

 

你这个问题没有到要了解底层的级别.

收获园豆:1
go on coding | 园豆:343 (菜鸟二级) | 2012-05-05 18:51
0

Webservice 直接调用咯~

添加服务引用~ 填写正确的 Webservice 路径

收获园豆:5
天真浪浪 | 园豆:950 (小虾三级) | 2012-05-06 04:44

不行的添加webservice时会因为未建立SSL而终止的我用vs直接连接引用时 只看到request 这样一个虚方法 我这里根本没法调用这个方法

支持(0) 反对(0) 仰望繁星的猪 | 园豆:286 (菜鸟二级) | 2012-05-06 09:14
0

webservice 是标准的协议,要是调不通,要么就是对方发布有问题,要么就是你的地址写错了

收获园豆:1
az235 | 园豆:8283 (大侠五级) | 2012-05-06 10:13

关于这个接口,银联方面表示已经有.net用户接入了 所以.....

支持(0) 反对(0) 仰望繁星的猪 | 园豆:286 (菜鸟二级) | 2012-05-07 18:11
0
收获园豆:21
dudu | 园豆:39361 (高人七级) | 2012-05-07 13:18
0

一楼说的在理,你最后提的问题跟你前半分的描述有直接有关系吗?你若真要问两个平台底层实现的不同,又有几个人能给你完美的解释?

收获园豆:1
lonely_rain | 园豆:752 (小虾三级) | 2012-05-07 18:02

这个主要是本人技术有限 开发走进死胡同了 就想着看看其他思路

最近自己又写了个接口 发现本地测试可以,当然是纯.net开发的


就是不知道.net调用java开发的接口时,是否有其他限制

支持(0) 反对(0) 仰望繁星的猪 | 园豆:286 (菜鸟二级) | 2012-05-07 18:04

@仰望繁星的猪: 其实,这不是两个平台的差异,而是你更应该去了解一下计算机的底层原理。无论是.net还是java平台,计算机所执行的只能是二进制语言,两个平台的相互调用,网上有不少解决方案供你参考。例如DUDU给你发的浪子写的就不错。技术积累是需要一个时间过程,先解决眼前问题才是你的问题,你觉得呢?

支持(0) 反对(0) lonely_rain | 园豆:752 (小虾三级) | 2012-05-07 18:11

@lonely_rain: 这个接口主要部分已经交给我们老大了,当然现在还没完成。完成后我也准备好好总结一下问题,好吧一个接口牵扯的东西有点多。努力中....

支持(0) 反对(0) 仰望繁星的猪 | 园豆:286 (菜鸟二级) | 2012-05-08 14:15

@仰望繁星的猪: 不管怎样,还是系统的看下,有个整体了解。手段,可以通过源代码或者相关资料。

支持(0) 反对(0) lonely_rain | 园豆:752 (小虾三级) | 2012-05-08 16:11

@仰望繁星的猪: 怎么个无言以对?

支持(0) 反对(0) lonely_rain | 园豆:752 (小虾三级) | 2012-05-16 09:08

@lonely_rain: 我先整理一下遇到的问题

支持(0) 反对(0) 仰望繁星的猪 | 园豆:286 (菜鸟二级) | 2012-05-18 09:38

@lonely_rain: 我是不会告诉你,老大的代码就比我写的多了几行而已,而且其他啥都木有,又扔给我了。

支持(0) 反对(0) 仰望繁星的猪 | 园豆:286 (菜鸟二级) | 2012-05-18 10:32
0

估计不能直接引用, 用那个命令行的工具(忘了叫什么名字)生成soap的代理类,然后再修改其代码,加入证书ssl

收获园豆:1
Gu | 园豆:202 (菜鸟二级) | 2012-05-08 14:11

啥工具啊?有名字没?我google一下

支持(0) 反对(0) 仰望繁星的猪 | 园豆:286 (菜鸟二级) | 2012-05-08 14:12
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册