最近在做一个银联积分卡的项目 ,功能很简单,就是根据会员的积分卡卡号,再通过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报文。
Webservice是标准的。你可以在.NET这边,使用原生的http请求(HttpWebRequest),将服务者提供的soap消息格式做参数替换,然后当作http协议的实体内容发送到webservice所寄存的服务器上,然后WS会根据soap消息中参数,做出响应。你在客户端接收响应消息,不就好了?
当然,你也可以在.NET端去动态调用,根据WSDL文件描述,自己在.NET这边生成服务代理类,手动调用编译器去生成,然后用反射的方式去调用WS提供的webmethod。
实现思路就是这样的
"在.NET这边生成服务代理类 " 这个会因为未建立SSL而。。。
思路是對的 ,我錯的地方是對soap報文不瞭解。發送的是拼接而成的XML字符串,不是標準的soap報文。所以對方讀取錯誤。
Webservice 存在就是解决不同平台的问题了.Webservice基于的是xml,soap协议来折,跟平台毛关系.
不知道你说的平台底层的访问原理指代的什么?
你这个问题没有到要了解底层的级别.
webservice 是标准的协议,要是调不通,要么就是对方发布有问题,要么就是你的地址写错了
关于这个接口,银联方面表示已经有.net用户接入了 所以.....
一楼说的在理,你最后提的问题跟你前半分的描述有直接有关系吗?你若真要问两个平台底层实现的不同,又有几个人能给你完美的解释?
这个主要是本人技术有限 开发走进死胡同了 就想着看看其他思路
最近自己又写了个接口 发现本地测试可以,当然是纯.net开发的
就是不知道.net调用java开发的接口时,是否有其他限制
@仰望繁星的猪: 其实,这不是两个平台的差异,而是你更应该去了解一下计算机的底层原理。无论是.net还是java平台,计算机所执行的只能是二进制语言,两个平台的相互调用,网上有不少解决方案供你参考。例如DUDU给你发的浪子写的就不错。技术积累是需要一个时间过程,先解决眼前问题才是你的问题,你觉得呢?
@lonely_rain: 这个接口主要部分已经交给我们老大了,当然现在还没完成。完成后我也准备好好总结一下问题,好吧一个接口牵扯的东西有点多。努力中....
@仰望繁星的猪: 不管怎样,还是系统的看下,有个整体了解。手段,可以通过源代码或者相关资料。
@仰望繁星的猪: 怎么个无言以对?
@lonely_rain: 我先整理一下遇到的问题
@lonely_rain: 我是不会告诉你,老大的代码就比我写的多了几行而已,而且其他啥都木有,又扔给我了。
估计不能直接引用, 用那个命令行的工具(忘了叫什么名字)生成soap的代理类,然后再修改其代码,加入证书ssl
啥工具啊?有名字没?我google一下