首页 新闻 搜索 专区 学院

求高手帮忙解决,用webservice如何传递DataSet

0
悬赏园豆:100 [已解决问题] 解决于 2012-05-07 18:30

新做个项目,要实现网站与网站之间的数据共享,主要是用webservice实现。我在webservice中写了一个方法把本网站要传递的信息生成了一个DataSet,怎么把这个DataSet传递到别的服务器上远端的Web Service,同样的,怎么在本服务器上获取别人传过来的DataSet。

问题补充:

刚刚可能没有表述清楚,负责人要求我写出来一个接口向别的网站分享发布的文章信息,发表一边文章就会传入文章标题等参数,结果生成一个DataSet,然后由别服务器的网站来调用我的这个webservice来获取这个dataset得到这些文章信息,但是由别的网站调用的话,他是不可能知道我到底要传的参数是什么

汵凊沫沫的主页 汵凊沫沫 | 初学一级 | 园豆:20
提问于:2012-05-07 14:15
< >
分享
最佳答案
1

你的webservice有个服务地址啊,让别人来访问你这个webservice的方法,方法给个dataset类型的返回值。其实,访问webservice跟访问方法是一样的。就是要根据地址找到你这个服务,你的服务会把数据转换成wsdl。

http://msdn.microsoft.com/en-us/library/s5xy331f(v=vs.80).aspx看一下这儿的代码。

收获园豆:30
悟行 | 专家六级 |园豆:12346 | 2012-05-07 14:24

但是我的webservice方法里面有传入的参数,如果别人来访问的怎么传入参数

汵凊沫沫 | 园豆:20 (初学一级) | 2012-05-07 14:26

@汵凊沫沫: 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

悟行 | 园豆:12346 (专家六级) | 2012-05-07 14:30
其他回答(5)
0

你是不是在深圳的?是不是长沙来的?

收获园豆:10
de_shuai | 园豆:183 (初学一级) | 2012-05-07 14:21

不是

支持(0) 反对(0) 汵凊沫沫 | 园豆:20 (初学一级) | 2012-05-07 14:22

@汵凊沫沫: 你可以把dataset序列号装箱 或者转换成Json

支持(0) 反对(0) de_shuai | 园豆:183 (初学一级) | 2012-05-07 14:28
0

LZ看看webservice的例子,你可以新建一个工程,再建立一个webservice,自己测试下,看看怎么用。

WebService数据在传输时,如果是复杂对象,就必须将对象序列化,然后才能进行传输和解析,参数的话,就像调用方法一样,该几个参数,就几个参数

收获园豆:10
az235 | 园豆:8283 (大侠五级) | 2012-05-07 14:32

我可能没有表述清楚,负责人要求我写出来一个接口向别的网站分享发布的文章信息,需要传入标题等参数,结果生成一个DataSet,然后由别的网站来调用我的这个webservice来获取这个dataset得到这些文章信息,但是由别的网站调用的话,他是不可能知道我到底要传的参数是什么

支持(0) 反对(0) 汵凊沫沫 | 园豆:20 (初学一级) | 2012-05-07 14:37

@汵凊沫沫: 当第三方获取到你的WSDL文档时,就已经知道要怎么传输参数了,这些都在WSDL中描述清楚了,报告返回值。

建议你自己建立一个WebService,然后在浏览器中看一看,相信LZ马上就能明白了。

支持(0) 反对(0) az235 | 园豆:8283 (大侠五级) | 2012-05-07 14:41

@az235: 建议lz看看WSDL的资料,那里面有很详细的介绍

支持(0) 反对(0) az235 | 园豆:8283 (大侠五级) | 2012-05-07 14:51

@az235: 那我发表一篇标题为aa的文章,会传入参数aa,把文章信息弄到一个DataSet中,那别人调用我这个webservice,也不可能会知道我发布的文章标题啊

支持(0) 反对(0) 汵凊沫沫 | 园豆:20 (初学一级) | 2012-05-07 14:53

@汵凊沫沫: 你把东西都丢到了DataSet中,还有什么东西是不知道的呢,你要是没丢的话,人家传入标题,自己想想也明白了吧

支持(0) 反对(0) az235 | 园豆:8283 (大侠五级) | 2012-05-07 14:55
0

首先制定API,以供调用方调用,其次,制定数据传输格式,常用分为两种xml和json。完成这两步之后,其他网站就可以通过你开放的api获取数据了,然后,你要做的就是把dataset转换成相应的格式。

收获园豆:10
sinhbv | 园豆:2579 (老鸟四级) | 2012-05-07 15:33

我将DataSet转换成XML之后怎么传输?如果是这个接口返回一个xml格式的返回值,其他网站调用的时候这个接口不是还要有参数吗

支持(0) 反对(0) 汵凊沫沫 | 园豆:20 (初学一级) | 2012-05-07 16:14

@汵凊沫沫: 比如查询文章内容的api为 www.youdoname.com/getContext.xml?id=num,这个api返回id为num的文章的内容,那么调用方就需要使用这个api来获取文章内容,而你返回的xml格式内容格式也是设定好的,比如<root><id>num</id><context></context>这个格式,你只需要把内容写在其中返回就好了,至于说传输,一般都是基于http的,调用方式就和使用ajax请求一样。

支持(0) 反对(0) sinhbv | 园豆:2579 (老鸟四级) | 2012-05-07 16:31
0

楼上说的都差不多了,一般都是转换成xml或json来传输的了。

收获园豆:10
East神奇 | 园豆:21 (初学一级) | 2012-05-07 15:56

将DataSet转换成XML,意思不是还是这个接口方法的返回值是XML型的,别的网站要来调用的话还是要调用这个方法,那不还是要传入参数吗

支持(0) 反对(0) 汵凊沫沫 | 园豆:20 (初学一级) | 2012-05-07 16:27

@汵凊沫沫:  看了一下你的补偿,发现楼下说的没错了,别人调用你的服务,肯定是在你允许下,然后双方确定了,传入参数,返回数据类型的情况下进行的。

这个你可以一个文档描述发给对方,或者直接在代码里面描述。

支持(0) 反对(0) East神奇 | 园豆:21 (初学一级) | 2012-05-07 17:49
0

归根到底,你是对webservice理解不够深。别人调用你的服务,你是服务提供者,写接口供别人调用,具体的参数和返回值,双方商定。你调别人的接口,需要知道,别人的服务接口的需要传入的参数和返回值,你获取到返回值后再进行解析!

收获园豆:20
lonely_rain | 园豆:752 (小虾三级) | 2012-05-07 17:25

我确实不太了解webservice,以前没有接触过这类开发,不过我们做的这种跟你们说的都不一样,要求是把每一篇发表的文章的内容作为参数传入,所以参数什么的都是不固定的,每发表一篇文章,参数都会改变,所以我仔细考虑了一下,我觉得我们这个项目可能不应该用webservice技术来实现,不过还是谢谢各位的回答了!

支持(0) 反对(0) 汵凊沫沫 | 园豆:20 (初学一级) | 2012-05-07 17:48

@汵凊沫沫: 我不是太理解“要求是把每一篇发表的文章的内容作为参数传入”,什么样的参数是根据数据类型来定义的,通过HTTP请求/响应都是字符串string类型,我管你文章内容是什么?定义传入参数为字符串类型传值不可以吗?每发表一篇,文章内容变了,和参数类型有太大关系吗?还有你把文章内容都作为参数输入了,那输出什么?对方调用你的接口要得到什么样的数据?

支持(0) 反对(0) lonely_rain | 园豆:752 (小虾三级) | 2012-05-07 17:58
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册