首页 新闻 会员 周边 捐助

这是一个很多人都问过,却一直没有理想答案的问题。。

0
悬赏园豆:50 [已解决问题] 解决于 2014-07-16 10:08

目前有好多WebService是用.net开发的,在返回值和输入,输出参数中都有一些.net特有的类型,最常见的就是DataTable,DataSet等这些,这样的WebService对与.net程序来说,调用起来很是方便好用。。

可是对于其它平台,比如Android下来调用,却是非常麻烦,我现在就遇到这样的问题,深受其苦,在网上找了很久也没有找到合适的解决方法。。

 

先看两种情况:

第一种:返回值是DataSet的情况,我不知道怎么解析它里边的值,返回的是一个SoapObject对象,里边的properties这个属性在递归N层之后,可以看到值。。这个N不清楚是否是可变的,应该是吧,想问下高手们,Android或java里,有没有什么类型可以接收DataSet的返回类型?

 

第二种:参数需要传DataSet的情况,这种情况好像更麻烦,要传什么类型进去,才能被.net的WebService识别并可以转换成它的DataSet呢?

 

再问一个相关的问题,在.net中,从DB里查询出来的数据,一般用DataTable来接收,在java里,用什么类型的对象来接收呢?(看了下Android里是用Cursor来收。。感觉真心好麻烦。)

 

一共三个问题,请朋友们耐心解答,谢谢!

hexllo的主页 hexllo | 菜鸟二级 | 园豆:318
提问于:2014-06-24 09:03
< >
分享
最佳答案
0

我正好做过安卓客户端,我是这么做的(也是普遍做法),需要通过JSON做中间量转化:服务器端把数据库取出的DataSet转成JSON串格式,发送给客户端。客户端通过解析收到JSON串,获取DataSet。

收获园豆:35
技翼 | 初学一级 |园豆:6 | 2014-06-24 09:17

WebService是其它公司提供的,他们由于某些原因不会改成json

hexllo | 园豆:318 (菜鸟二级) | 2014-06-24 09:23
其他回答(11)
0

试试这里的方法:Tratamiento de XML en Android (I): SAX

收获园豆:5
dudu | 园豆:30939 (高人七级) | 2014-06-24 09:37
0

第一种:没有

第二种:不是传什么类型,而是传 SOAP 消息;

再问一个相关问题:DataTable 只是数据集合,.Net 中也是利用 SqlDataReader(类似 Android 里的 Cursor)来填充 DataTable。

 

http://stackoverflow.com/questions/1194971/dataset-class-in-java

收获园豆:5
Launcher | 园豆:45050 (高人七级) | 2014-06-24 09:38
0

正常应该返回实体吧?DataTable应该不太正规。。。哪儿有给别人调用的东西还DataTable呢?

顾晓北 | 园豆:10893 (专家六级) | 2014-06-24 09:41
0

我教你一个非正规方法,你自己封装一下这个webservices,返回Json

收获园豆:5
飞来飞去 | 园豆:2057 (老鸟四级) | 2014-06-24 09:43
0

当看到DataTable做参数传值时,就明白你问题出在哪里.

接口一定要明确类型,尤其webservice这种不能用弱类型

吴瑞祥 | 园豆:29449 (高人七级) | 2014-06-24 09:56
0

最好是转json

Albert Fei | 园豆:2102 (老鸟四级) | 2014-06-24 10:23
0

是的 ,接口 太渣了 

世界万物 | 园豆:276 (菜鸟二级) | 2014-06-24 11:44
0

普遍做法,做个字符串转换器,转成Json

iEvent | 园豆:529 (小虾三级) | 2014-06-24 11:46
0

接口方的问题,返回格式应该用json或者是xml。

幻天芒 | 园豆:37205 (高人七级) | 2014-06-24 13:35
0

http://blog.csdn.net/yenange/article/details/5824967

你用这上面的方法试试,我以前在做.net调用java提供的webservice的时候返回的是一个对象,这个对象在.NET里肯定是没有的,按照这篇文章中提供的方法来添加java的webservice可以生成一个.net对应的一个代理类,里面会根据java webservice中定义的对象生成对应关系,这样不管java的webservice返回的什么对象,代理类里也会生成这们对象的代码,直接就可以用。

java调用.net也应该是可以这样搞的吧,你可以试试!

Alex_QY1987 | 园豆:1888 (小虾三级) | 2014-06-25 14:46
0

我很奇怪,web service不都传输的是xml吗?直接解析这个xml不可以吗?

Eysa | 园豆:62 (初学一级) | 2014-07-16 09:30
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册