新做个项目,要实现网站与网站之间的数据共享,主要是用webservice实现。我在webservice中写了一个方法把本网站要传递的信息生成了一个DataSet,怎么把这个DataSet传递到别的服务器上远端的Web Service,同样的,怎么在本服务器上获取别人传过来的DataSet。
你的webservice有个服务地址啊,让别人来访问你这个webservice的方法,方法给个dataset类型的返回值。其实,访问webservice跟访问方法是一样的。就是要根据地址找到你这个服务,你的服务会把数据转换成wsdl。
http://msdn.microsoft.com/en-us/library/s5xy331f(v=vs.80).aspx看一下这儿的代码。
但是我的webservice方法里面有传入的参数,如果别人来访问的怎么传入参数
@汵凊沫沫: ajax访问。
$.ajax({ url: "ajax/ajax_selectPicType.aspx", data:{Full:"fu"}, type: "POST", dataType:'json', success:CallBack, error:function(er){ BackErr(er);} });
其中的data就是你要传递的参数。Full就是参数名称。一定要跟你的方法名称一样。
参考:http://www.jqueryajax.com/jquery/1074.html
http://www.cnblogs.com/qleelulu/archive/2008/04/21/1163021.html
你是不是在深圳的?是不是长沙来的?
不是
@汵凊沫沫: 你可以把dataset序列号装箱 或者转换成Json
LZ看看webservice的例子,你可以新建一个工程,再建立一个webservice,自己测试下,看看怎么用。
WebService数据在传输时,如果是复杂对象,就必须将对象序列化,然后才能进行传输和解析,参数的话,就像调用方法一样,该几个参数,就几个参数
我可能没有表述清楚,负责人要求我写出来一个接口向别的网站分享发布的文章信息,需要传入标题等参数,结果生成一个DataSet,然后由别的网站来调用我的这个webservice来获取这个dataset得到这些文章信息,但是由别的网站调用的话,他是不可能知道我到底要传的参数是什么
@汵凊沫沫: 当第三方获取到你的WSDL文档时,就已经知道要怎么传输参数了,这些都在WSDL中描述清楚了,报告返回值。
建议你自己建立一个WebService,然后在浏览器中看一看,相信LZ马上就能明白了。
@az235: 建议lz看看WSDL的资料,那里面有很详细的介绍
@az235: 那我发表一篇标题为aa的文章,会传入参数aa,把文章信息弄到一个DataSet中,那别人调用我这个webservice,也不可能会知道我发布的文章标题啊
@汵凊沫沫: 你把东西都丢到了DataSet中,还有什么东西是不知道的呢,你要是没丢的话,人家传入标题,自己想想也明白了吧
首先制定API,以供调用方调用,其次,制定数据传输格式,常用分为两种xml和json。完成这两步之后,其他网站就可以通过你开放的api获取数据了,然后,你要做的就是把dataset转换成相应的格式。
我将DataSet转换成XML之后怎么传输?如果是这个接口返回一个xml格式的返回值,其他网站调用的时候这个接口不是还要有参数吗
@汵凊沫沫: 比如查询文章内容的api为 www.youdoname.com/getContext.xml?id=num,这个api返回id为num的文章的内容,那么调用方就需要使用这个api来获取文章内容,而你返回的xml格式内容格式也是设定好的,比如<root><id>num</id><context></context>这个格式,你只需要把内容写在其中返回就好了,至于说传输,一般都是基于http的,调用方式就和使用ajax请求一样。
楼上说的都差不多了,一般都是转换成xml或json来传输的了。
将DataSet转换成XML,意思不是还是这个接口方法的返回值是XML型的,别的网站要来调用的话还是要调用这个方法,那不还是要传入参数吗
@汵凊沫沫: 看了一下你的补偿,发现楼下说的没错了,别人调用你的服务,肯定是在你允许下,然后双方确定了,传入参数,返回数据类型的情况下进行的。
这个你可以一个文档描述发给对方,或者直接在代码里面描述。
归根到底,你是对webservice理解不够深。别人调用你的服务,你是服务提供者,写接口供别人调用,具体的参数和返回值,双方商定。你调别人的接口,需要知道,别人的服务接口的需要传入的参数和返回值,你获取到返回值后再进行解析!
我确实不太了解webservice,以前没有接触过这类开发,不过我们做的这种跟你们说的都不一样,要求是把每一篇发表的文章的内容作为参数传入,所以参数什么的都是不固定的,每发表一篇文章,参数都会改变,所以我仔细考虑了一下,我觉得我们这个项目可能不应该用webservice技术来实现,不过还是谢谢各位的回答了!
@汵凊沫沫: 我不是太理解“要求是把每一篇发表的文章的内容作为参数传入”,什么样的参数是根据数据类型来定义的,通过HTTP请求/响应都是字符串string类型,我管你文章内容是什么?定义传入参数为字符串类型传值不可以吗?每发表一篇,文章内容变了,和参数类型有太大关系吗?还有你把文章内容都作为参数输入了,那输出什么?对方调用你的接口要得到什么样的数据?