【求助】.net编写基于soap调用Web Service,对各位应该很容易

问题描述

要做的东西如下(图一),简单的说就是区卫生厅提供了一个WebService接口,让我们各家医院自己编写调用WebService来上传文件(实现定期自动上传,就比以前手动方便快捷)。对高手或者有这方面经验的开发者而言,这应该很容易实现吧,请指点啊!感觉很头痛我以前没接触过WebService,不知道如何写这个调用,在网上查了些资料自己按着做了个VB.Net编程实现WebService的本地服务和调用的例子成功了,看上去挺容易的,可回到现实要做的(图一)中东西,发现很多都对不上,不知道如何实现,写的程序根本连接不上,反正是一头雾水(后附自己的代码和疑问,请高手指点!!最好是vb.net或C#的)(图一)下面是自己的VB.NET工程代码(照着网上一些例子写的,估计自己写的根本不对)已经添加了Web服务引用ImportsSystem.Web.Services.ProtocolsPublicClassForm1PrivateSubButton1_Click(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)HandlesButton1.ClickDimhAsWebReference.MySoapHeaderDimserviceAsWebReference.BasWebService=NewWebReference.BasWebServiceh=NewWebReference.MySoapHeaderh.UserID="bas1234"h.PassWord="12342816202@gxwst"service.MySoapHeaderValue=hDimresultsAsIntegerresults=service.GetBasInfo(1,"dfsfaf15515235")TextBox1.Text=CStr(results)TextBox2.Text=h.UserIDEndSubEndClass

【下面自己的疑惑】望高手们指点!!一、SOAPrequestandresponse进入WebService地址可以看到该服务的方法GetBasInfo点击GetBasInfo进去可以看到Soap请求和响应的示例如下图,里面有要填用户密码之类,可这些要怎么利用我完全不懂,这些代码要放在什么地方二、(图一)后附件的表格如何形成一个Xml格式的字符串,用于传送请稍微举个例子吧总结起来大概就是两个问题,一是怎么通过Soap身份验证,二是怎么把表格转成Xml格式的字符串来传送我想我这些问题对于各位应该很简单的,请帮帮忙!跪了……

解决方案

解决方案二:
在线等!请大家帮帮忙啊!3Q
解决方案三:
1,soap身份验证的话2,表格转成Xml格式的字符串来传送WebMethod返回值直接定义成dataset
解决方案四:
关于您的疑惑lz贴图的最后一张Soap1.1那段说明你的GetBasInfo这个webservice接受的request和返回的response的样子意思就是说你客户端用webservice的时候只要发的request是这个样子的,那webservice就能处理了然后webservice返回的response的话是这个样子的,你客户端按照这个规则来解析就行了
解决方案五:
引用3楼BrightFireOfCy的回复:

关于您的疑惑lz贴图的最后一张Soap1.1那段说明你的GetBasInfo这个webservice接受的request和返回的response的样子意思就是说你客户端用webservice的时候只要发的request是这个样子的,那webservice就能处理了然后webservice返回的response的话是这个样子的,你客户端按照这个规则来解析就行了

可是怎么发我不太明白啊能给个例子吗
解决方案六:
引用4楼simaqingtian的回复:

Quote: 引用3楼BrightFireOfCy的回复:
关于您的疑惑lz贴图的最后一张Soap1.1那段说明你的GetBasInfo这个webservice接受的request和返回的response的样子意思就是说你客户端用webservice的时候只要发的request是这个样子的,那webservice就能处理了然后webservice返回的response的话是这个样子的,你客户端按照这个规则来解析就行了

可是怎么发我不太明白啊能给个例子吗

看这里:其中第一段代码的129行到133行改成下面这样就行了stringstrXml="";//lz最后一张图里面上半部分的xmlbyte[]data=requestEncoding.GetBytes(strXml.ToString());using(Streamstream=request.GetRequestStream()){stream.Write(data,0,data.Length);}

解决方案七:
引用5楼BrightFireOfCy的回复:

Quote: 引用4楼simaqingtian的回复:
Quote: 引用3楼BrightFireOfCy的回复:
关于您的疑惑lz贴图的最后一张Soap1.1那段说明你的GetBasInfo这个webservice接受的request和返回的response的样子意思就是说你客户端用webservice的时候只要发的request是这个样子的,那webservice就能处理了然后webservice返回的response的话是这个样子的,你客户端按照这个规则来解析就行了

可是怎么发我不太明白啊能给个例子吗

看这里:其中第一段代码的129行到133行改成下面这样就行了stringstrXml="";//lz最后一张图里面上半部分的xmlbyte[]data=requestEncoding.GetBytes(strXml.ToString());using(Streamstream=request.GetRequestStream()){stream.Write(data,0,data.Length);}

lz最后一张图里面上半部分的xml可这个该怎么写啊,怎么把表格转成xml格式
解决方案八:
引用6楼simaqingtian的回复:

Quote: 引用5楼BrightFireOfCy的回复:
Quote: 引用4楼simaqingtian的回复:
Quote: 引用3楼BrightFireOfCy的回复:
关于您的疑惑lz贴图的最后一张Soap1.1那段说明你的GetBasInfo这个webservice接受的request和返回的response的样子意思就是说你客户端用webservice的时候只要发的request是这个样子的,那webservice就能处理了然后webservice返回的response的话是这个样子的,你客户端按照这个规则来解析就行了

可是怎么发我不太明白啊能给个例子吗

看这里:其中第一段代码的129行到133行改成下面这样就行了stringstrXml="";//lz最后一张图里面上半部分的xmlbyte[]data=requestEncoding.GetBytes(strXml.ToString());using(Streamstream=request.GetRequestStream()){stream.Write(data,0,data.Length);}

lz最后一张图里面上半部分的xml可这个该怎么写啊,怎么把表格转成xml格式

酱紫写:stringstrXml="<?xmlversion="1.0"encoding="utf-8"?><soap:Envelopxmls:xsi.........."

解决方案九:
表格转成xml,偷懒的方法:表格数据放DataTable,然后DataTable放DataSet然后DataSet.writexml(文件名)
解决方案十:
引用8楼BrightFireOfCy的回复:

表格转成xml,偷懒的方法:表格数据放DataTable,然后DataTable放DataSet然后DataSet.writexml(文件名)

那我表格转成xml后怎么发送呢,官方给的函数是GetBasInfo(intTag,stringbasinfo)参数stringbasinfo这个是要发送的信息为xml字符串,怎么填
解决方案十一:
这个要问官方阿,你上论坛来问不到拉,他们怎么定的?
解决方案十二:
呃,看你第一张图啦人家不是说了,具体格式参阅附件一,二,三
解决方案十三:
引用11楼BrightFireOfCy的回复:

呃,看你第一张图啦人家不是说了,具体格式参阅附件一,二,三

是啊文件说把表格转成XML格式,然后填到参数stringbasinfo里,我不知道怎么转换啊
解决方案十四:
引用12楼simaqingtian的回复:

Quote: 引用11楼BrightFireOfCy的回复:
呃,看你第一张图啦人家不是说了,具体格式参阅附件一,二,三

是啊文件说把表格转成XML格式,然后填到参数stringbasinfo里,我不知道怎么转换啊

首先你要知道转换后的xml是啥样子的才能转啊,把附件一,二,三发上来看看
解决方案十五:
引用13楼BrightFireOfCy的回复:

Quote: 引用12楼simaqingtian的回复:
Quote: 引用11楼BrightFireOfCy的回复:
呃,看你第一张图啦人家不是说了,具体格式参阅附件一,二,三

是啊文件说把表格转成XML格式,然后填到参数stringbasinfo里,我不知道怎么转换啊

首先你要知道转换后的xml是啥样子的才能转啊,把附件一,二,三发上来看看

啥意思,转换后的xml是啥样子?这个我不懂啊,我都不知道怎么转,或者说我都没转过,哪知道转后是啥样子我都不明白什么叫“xml格式的字符串”好像没有附件一,图里有附件二、三
其他方案:
"<?xmlversion="1.0"encoding="utf-8"?><soap:Envelopxmls:xsi.........."---------------------这种就是“xml格式的字符串”
其他方案:
如果接口让你上传一个string类型的数据,那我猜啊,他应该会提供一个xml打开后的格式,当然字段名可以乱用,但是几个列数据肯定得告诉你的。如何他通过你传过去的(包含xml格式(数据)字符串)转化为xml文件保存到服务器;如何把这个文件转为dt或者ds入库;你需要跟提供接口给你的家伙要数据的格式,如何你自己创建一个内容为(xml里面内容)string文档就行了------serializer=Xml.newSerializer();writer=newStringWriter();serializer.setOutput(writer);serializer.startDocument("utf-8",null);serializer.startTag("","字段a");serializer.startTag("","字段b");serializer.text(值b);serializer.endTag("","字段b");------serializer.endTag("","字段a");以上为构建语法这个构建xml内容的字符串结构你需要跟给你接口的家伙讨论,如果他没给你明白,可以考虑问候他妈去---
其他方案:
添加soap验证:http://blog.csdn.net/wkjs/article/details/15620482种方式可以添加xmlwebservce的引用,方式1:直接在你的项目引用处右键添加服务引用,然后将相关地址输入进去,添加命名空间,然后就可以通过命名空间.的方式调用相关服务。方式2:wsdl命令编译相关wsdl文档(查看服务说明)或者url后面+?wsdl一次编译可以将wsdl编译成cs文件,直接引用,也可以再将cs文档编译成dll。结果你可以直接将xml解析成对象,网上实例很多
其他方案:
引用16楼gucangen的回复:

如果接口让你上传一个string类型的数据,那我猜啊,他应该会提供一个xml打开后的格式,当然字段名可以乱用,但是几个列数据肯定得告诉你的。如何他通过你传过去的(包含xml格式(数据)字符串)转化为xml文件保存到服务器;如何把这个文件转为dt或者ds入库;你需要跟提供接口给你的家伙要数据的格式,如何你自己创建一个内容为(xml里面内容)string文档就行了------serializer=Xml.newSerializer();writer=newStringWriter();serializer.setOutput(writer);serializer.startDocument("utf-8",null);serializer.startTag("","字段a");serializer.startTag("","字段b");serializer.text(值b);serializer.endTag("","字段b");------serializer.endTag("","字段a");以上为构建语法这个构建xml内容的字符串结构你需要跟给你接口的家伙讨论,如果他没给你明白,可以考虑问候他妈去---

严重同意,还有#17的kangkang08同学说的太轻巧了吧,网上例子再多,具体的通信规则服务端不描述清楚还是不行的。
其他方案:
关注0,0mark
其他方案:
简单来说,Soap验证协议其实是规范调用方的权限。举个例子,我写了一个接口,接口里面涉及到敏感的数据或更新操作。因为接口是对外是公开的,所以任何人都可以使用这个接口。说得严重点这个显然对数据库服务器是致命的,极容易被黑客攻击。所以Soap验证协议可以在调用方调用接口的时候,要求输入指定的验证规则数据来验证这个用户是否是合法的调用方。在调用方调用接口的时候,这个验证的数据会传递到接口的服务器,服务器根据已经拟定好的验证规则来验证这个用户。如果合法则调用方可以正常调用,否则服务器会拒绝服务。
其他方案:
完了,卫计委给的医疗机构的文件都可以拍照公开,你可以问系统内部的专家嘛。你要在这里问也可以问如何调用ssl的webservice,涉密文件能随便拍照公开?

时间: 2024-08-30 22:04:40

【求助】.net编写基于soap调用Web Service,对各位应该很容易的相关文章

Windows Phone开发(47):轻松调用Web Service

原文:Windows Phone开发(47):轻松调用Web Service 众所周知(除了没用过VS的),在VS里面调用Web Service是一件很愉快的事情,不解释,相信很多朋友在以前的项目中肯定也用过WEB服务.同样,在WP中调用Web Service也是非常简单的,你可以不信,反正我绝对信了.   有例子有真相,我们就以http://webservice.webxml.com.cn/WebServices/IpAddressSearchWebService.asmx 为例,这个Web服

使用Integrated Web Services Client for ILE在ILE程序中调用Web Service 一

IBM Integrated Web Services for i是IBM最新发布的在IBM i上的SOA解决方案,包括Integrated Web Services Server for i和Integrated Web Services Client for ILE两部分.Integrated Web Services Server for i使用户能够将ILE RPG 和 COBOL程序快速部署成Web Services,而Integrated Web Services Client fo

利用php soap实现web service

原文:利用php soap实现web service php有两个扩展可以实现web service,一个是NuSoap,一个是php 官方的soap扩展,由于soap是官方的,所以我们这里以soap来实现web service.由于默认是没有打开soap扩展的,所以自己先看一下soap扩展有没有打开.  在soap编写web service的过程中主要用到了SoapClient,SoapServer,SoapFault三个类. SoapClient类 这个类用来使用Web services.S

在ASP.NET Atlas中调用Web Service—批量调用以提高效率

asp.net|web 对于Atlas程序,在某些情况下,我们需要在短时间内调用大量的Web Service,例如某个列表中用户快速的点击删除.这时网络带宽,稳定程度等等往往会造成较长时间的延迟.如果可以将这些调用包装成一个单一的请求,那么用户只需忍受一次网络延迟,即可得到处理的结果,也间接的提高了效率.似乎这并不是一个很容易实现的功能,但幸运的是,Atlas中内建了对批量调用Web Service的支持,您所需要的只是在程序中简单设置一下. Atlas中每个Web Service的调用请求都有

在WebSphere Portlet Factory中调用Web Service

通过 WebSphere Portlet Factory(WPF),开发者非常方便实现 Web Service 和 Portlets 的通信.开发者无需花费大量的时间去学习 SOAP,WSDL,XML schema(xsd) 等 Web Service 技术,使用 WPF 即可开发出健壮.功能强大的 Web Service 和实现对各种风格的 Web Service 的调用.WPF 隐藏了 Web Service 的内部实现细节,通过 WPF 的丰富的构建器自动生成 Web Service 和实

android调用web service(cxf)实例应用详解_Android

Google为ndroid平台开发Web Service提供了支持,提供了Ksoap2-android相关架包 1.下载该夹包可以直接登录http://code.google.com/p/ksoap2-android/,现在该站点已经提供了直接的下载,只要点击下载链接就可以下载了: 我现在的是ksoap2-android-assembly-2.6.5-jar-with-dependencies.jar 2.好了,现在我们就可以进行新建项目来进行测试了,首先我们先建立java服务端,这里的一些前期

用cxf公布和调用web service

用cxf发布和调用web service 最近我们的系统需要和一个第三方系统对接,对接的方式是通过web service,所以就学习了一下这方面的东西 用CXF来做web service是比较简单的,本文就简单介绍一下如何一步步发布web service,以及调用现有的web service.另外如果系统已经使用了Spring MVC,那么引入CXF需要额外的步骤,见本人另外一篇博客http://kyfxbl.iteye.com/blog/1432920.如果展现层没有用spring mvc,而

android调用web service(cxf)实例应用详解

Google为ndroid平台开发Web Service提供了支持,提供了Ksoap2-android相关架包 1.下载该夹包可以直接登录http://code.google.com/p/ksoap2-android/,现在该站点已经提供了直接的下载,只要点击下载链接就可以下载了: 我现在的是ksoap2-android-assembly-2.6.5-jar-with-dependencies.jar 2.好了,现在我们就可以进行新建项目来进行测试了,首先我们先建立java服务端,这里的一些前期

手把手教你实现、部署和调用Web Service

手把手教你实现.部署和调用Web Service