加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

在WebService上传递字节流

发布时间:2020-12-17 01:25:30 所属栏目:安全 来源:网络整理
导读:要通过WebService上传图片,到网上搜出一大堆,最有用的就是郑钧的博客。 ? 想了一下,原理很简单。 ? webservice,要实现在Java和.net之间通信,最基本的元素就是类型;SOAP定义了四种基本类型,int/long/boolean/String; ? 其它类型都是不支持的。要使用

要通过WebService上传图片,到网上搜出一大堆,最有用的就是郑钧的博客。

?

想了一下,原理很简单。

?

webservice,要实现在Java和.net之间通信,最基本的元素就是类型;SOAP定义了四种基本类型,int/long/boolean/String;

?

其它类型都是不支持的。要使用其它类型,就要做类型映射,就是将SOAP不认识的类型,映射为SOAP认识的类型;比如,java中的Vector,就不能直接用。因为.net不一定能识别。

?

webservice通信,本质上走的就是XML;对象要传递,就是要序列化和反序列化;怎么序列化,就怎么反序列化;

?

比如郑钧的例子中的wsTeam,有两个String,序列化的时候,两次writeUTF;反序列化时,就两次readUTF;

?

序列化后,就是字节流,通过XML直接传递字节流,肯定是不行的。因此,要转换;最直接的方法就是用Base64;

?

在KSOAP中,提供了base64的类,可以直接进行base64的转换。

?

比如:returnCode和personCount;

转成字节流就是:

0?a?72?65?74?75?72?6e?43?6f?64 ?65

0?b?70?65 72?73?6f?6e 43?6f?75?6e?74

base64转换后,就是:AApyZXR1cm5Db2RlAAtwZXJzb25Db3VudA==

?

在这个过程中,还应该有一个协商;协商的细节,没有去看。

?

KSOAP1.1和KSOAP1.2,在处理上的差异,也没有去看。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读