- 主题:[合集] 大家对SOAP中的附件怎么理解
☆─────────────────────────────────────☆
nobodyelse (空无一人|水木第二错别字大王) 于 (Mon Nov 17 16:03:54 2003) 提到:
MIME
DIME
用HTTP和SMTP都可以搭载???
息尚存,尤苦斗
不留点憾在人间
※ 修改:·nobodyelse 于 Nov 17 17:21:34 修改本文·[FROM: 202.197.125.175]
※ 来源:·BBS 水木清华站 smth.org·[FROM: 202.197.125.175]
☆─────────────────────────────────────☆
xyw (飞扬的梦) 于 (Tue Nov 18 17:58:46 2003) 提到:
Axis对MIME和DIME都支持,比较简单。
我只做过HTTP的这方面的东西,附件还是一个难点吧,在axis mailing list里面有一个著名
的文章叫做fear of attachment,讲得很详细,几乎各种情况都讲到了,可以作为附件的经
典指导书。
我的感觉是,带附件的soap目前的互操作性还很差,我曾经尝试各种java(axis)实现方式
,都无法实现能够让.net访问的基于rpc的支持附件操作的web service,最后只能用基于m
essage 实现。
不知道这里有没有那位牛人实现了支持附件的RPC的互操作性,指点一下。
【 在 nobodyelse (空无一人|水木第二错别字大王) 的大作中提到: 】
: MIME
: DIME
:
: 用HTTP和SMTP都可以搭载???
:
:
: 息尚存,尤苦斗
:
: 不留点憾在人间
:
: ...................
☆─────────────────────────────────────☆
nobodyelse (空无一人|水木第二错别字大王) 于 (Tue Nov 18 20:53:19 2003) 提到:
我就是弄不明白为什么要弄个附件
比如说一张JPEG
用BASE64编码后,作为一个String的返回值传过去就好了
(这个我已经成功实验过)。理论上所有的东西都可以
BASE64编码来传输,为什么要还要用附件?
而且SOAP做为一个轻量级的传输协议
本来就不要适合做为文件传输协议来用
你说的带附件的RPC,能不能举个应用的例子??
【 在 xyw (飞扬的梦) 的大作中提到: 】
: Axis对MIME和DIME都支持,比较简单。
: 我只做过HTTP的这方面的东西,附件还是一个难点吧,在axis mailing list里面有一个著名
: 的文章叫做fear of attachment,讲得很详细,几乎各种情况都讲到了,可以作为附件的经
: 典指导书。
: 我的感觉是,带附件的soap目前的互操作性还很差,我曾经尝试各种java(axis)实现方式
: ,都无法实现能够让.net访问的基于rpc的支持附件操作的web service,最后只能用基于m
: essage 实现。
: 不知道这里有没有那位牛人实现了支持附件的RPC的互操作性,指点一下。
☆─────────────────────────────────────☆
dqpiszf (我是你的崇拜者) 于 (Wed Nov 19 08:39:15 2003) 提到:
我到是不太赞同您的观点,我也试过用String或是干脆用一个数组把文件
传过去,可是你计算过速度吗,速度很慢!所以能不能找到一种方法,比
如说不以这种方式传递文件,而是以流文件的方式FileStream是否可行?
我没试验成功,也请大家来讨论一下。
【 在 nobodyelse (空无一人|水木第二错别字大王) 的大作中提到: 】
: 我就是弄不明白为什么要弄个附件
: 比如说一张JPEG
: 用BASE64编码后,作为一个String的返回值传过去就好了
: (这个我已经成功实验过)。理论上所有的东西都可以
: BASE64编码来传输,为什么要还要用附件?
: 而且SOAP做为一个轻量级的传输协议
: 本来就不要适合做为文件传输协议来用
: 你说的带附件的RPC,能不能举个应用的例子??
☆─────────────────────────────────────☆
nobodyelse (空无一人|水木第二错别字大王) 于 (Wed Nov 19 08:47:04 2003) 提到:
我实验过啊
速度好象并不慢啊
当然很大的文件我并没有实验过
因为我想SOAP本来就不适合用来传输较大的文件
而且速度快慢和文件大小有关吧(在相同的网络环境下)
那么一个同样大小的文件用BASE64编码放在SOAP信封里
和用附件挂在MIME里,整个SOAP消息的大小应该是一样的啊
【 在 dqpiszf (我是你的崇拜者) 的大作中提到: 】
: 我到是不太赞同您的观点,我也试过用String或是干脆用一个数组把文件
: 传过去,可是你计算过速度吗,速度很慢!所以能不能找到一种方法,比
: 如说不以这种方式传递文件,而是以流文件的方式FileStream是否可行?
: 我没试验成功,也请大家来讨论一下。
☆─────────────────────────────────────☆
teaman (猪猪) 于 (Wed Nov 19 08:52:23 2003) 提到:
关键问题是:为什么要用SOAP来传送一个图片而不是用诸如FTP之类的
文件传输协议?SOAP很好用,可也不是什么地方都适合用吧。
【 在 dqpiszf (我是你的崇拜者) 的大作中提到: 】
: 我到是不太赞同您的观点,我也试过用String或是干脆用一个数组把文件
: 传过去,可是你计算过速度吗,速度很慢!所以能不能找到一种方法,比
: 如说不以这种方式传递文件,而是以流文件的方式FileStream是否可行?
: 我没试验成功,也请大家来讨论一下。
☆─────────────────────────────────────☆
dqpiszf (我是你的崇拜者) 于 (Wed Nov 19 08:58:22 2003) 提到:
我前两天做过,速度确实不快,至少没法与用数据流形式传递比,而且
从原理上二者也有区别,因为流形式是程序不管流是什么,直接写过去,
而用数组要读到内存中,先在本地开个数组,再传递数组,远端接收时
也要先开数组,接收,处理,再返回,我感觉不快,搞不好客户端就报
“网络超时”的错误,对了,在Web Service里有没有设置时间的属性,
使我能设置我的服务在多长时间内应答就不算“超时”?
【 在 nobodyelse (空无一人|水木第二错别字大王) 的大作中提到: 】
: 我实验过啊
: 速度好象并不慢啊
: 当然很大的文件我并没有实验过
: 因为我想SOAP本来就不适合用来传输较大的文件
: 而且速度快慢和文件大小有关吧(在相同的网络环境下)
: 那么一个同样大小的文件用BASE64编码放在SOAP信封里
: 和用附件挂在MIME里,整个SOAP消息的大小应该是一样的啊
☆─────────────────────────────────────☆
nobodyelse (空无一人|水木第二错别字大王) 于 (Wed Nov 19 09:00:08 2003) 提到:
是啊
我就是觉得SOAP应该是比较适合在消息传递这一级的应用
所以不太明白的是SOAP加个附件为了什么(SOAP 1.1里原来
好象是没有就附件进行规范的,SOAP附件好象是附加规范)
它的应用背景在哪里?
【 在 teaman (猪猪) 的大作中提到: 】
: 关键问题是:为什么要用SOAP来传送一个图片而不是用诸如FTP之类的
: 文件传输协议?SOAP很好用,可也不是什么地方都适合用吧。
☆─────────────────────────────────────☆
nobodyelse (空无一人|水木第二错别字大王) 于 (Wed Nov 19 09:02:54 2003) 提到:
SOAP平台可设置超时的限制
SOAP规范里没有提到这个
因为SOAP规范主要是规范SOAP消息的格式
【 在 dqpiszf (我是你的崇拜者) 的大作中提到: 】
: 我前两天做过,速度确实不快,至少没法与用数据流形式传递比,而且
: 从原理上二者也有区别,因为流形式是程序不管流是什么,直接写过去,
: 而用数组要读到内存中,先在本地开个数组,再传递数组,远端接收时
: 也要先开数组,接收,处理,再返回,我感觉不快,搞不好客户端就报
: “网络超时”的错误,对了,在Web Service里有没有设置时间的属性,
: 使我能设置我的服务在多长时间内应答就不算“超时”?
☆─────────────────────────────────────☆
dqpiszf (我是你的崇拜者) 于 (Wed Nov 19 09:04:01 2003) 提到:
请问怎么设置?
【 在 nobodyelse (空无一人|水木第二错别字大王) 的大作中提到: 】
: SOAP平台可设置超时的限制
: SOAP规范里没有提到这个
: 因为SOAP规范主要是规范SOAP消息的格式
☆─────────────────────────────────────☆
nobodyelse (空无一人|水木第二错别字大王) 于 (Wed Nov 19 09:06:44 2003) 提到:
不同的平台有不同的设置方法吧
我觉得关键是看你用什么协议来搭载SOAP消息
如果用HTTP的话,HTTP连接超时怎么设置?:)
【 在 dqpiszf (我是你的崇拜者) 的大作中提到: 】
: 请问怎么设置?
☆─────────────────────────────────────☆
xyw (飞扬的梦) 于 (Wed Nov 19 09:41:44 2003) 提到:
我觉得有附件还是比较方便的,至少省去了编码和解码的麻烦。
你说的作为一个String的返回值传回去,对多个文件的附件是不是要比较麻烦?不太懂ba
se64。
我用Soap的时候就没有考虑过它是轻量级的传输协议,呵呵,就像有时候发邮件一样,一
股脑的把很多文件都挂上去,效率是比较低,可是方便,适合我这样比较懒的人。
带附件的rpc到现在还没有实现互操作性,所以没有例子可说。axis里有例子,但是那只是
把DataHandler作为参数或返回值而已,DataHandler只是一个wrapper,还不能算真正意义
上的附件。而且只能在java程序之间传输。
【 在 nobodyelse (空无一人|水木第二错别字大王) 的大作中提到: 】
: 我就是弄不明白为什么要弄个附件
: 比如说一张JPEG
: 用BASE64编码后,作为一个String的返回值传过去就好了
: (这个我已经成功实验过)。理论上所有的东西都可以
: BASE64编码来传输,为什么要还要用附件?
: 而且SOAP做为一个轻量级的传输协议
: 本来就不要适合做为文件传输协议来用
: 你说的带附件的RPC,能不能举个应用的例子??
:
: 【 在 xyw (飞扬的梦) 的大作中提到: 】
: ...................
修改:nobodyelse FROM 202.197.125.175
FROM 202.197.125.175
请问nobodyelse:
用base64编码你是怎么做的?
本人没有做过,请教一下,
谢谢!
nobodyelse (空无一人|水木第二错别字大王) 于 (Tue Nov 18 20:53:19 2003) 提到:
我就是弄不明白为什么要弄个附件
比如说一张JPEG
用BASE64编码后,作为一个String的返回值传过去就好了
(这个我已经成功实验过)。理论上所有的东西都可以
BASE64编码来传输,为什么要还要用附件?
而且SOAP做为一个轻量级的传输协议
本来就不要适合做为文件传输协议来用
你说的带附件的RPC,能不能举个应用的例子??
【 在 nobodyelse (空无一人|水木第二错别字大王) 的大作中提到: 】
: ☆─────────────────────────────────────☆
: nobodyelse (空无一人|水木第二错别字大王) 于 (Mon Nov 17 16:03:54 2003) 提到:
: MIME
: ...................
--
FROM 202.112.50.*
BASE64 编码是一种常用的字符编码,在很多地方都会用到。JDK 中提供了非常方便的
BASE64Encoder 和 BASE64Decoder,用它们可以非常方便的完成基于 BASE64 的编码和
解码。下面的两个小的函数,分别用于 BASE64 的编码和解码:
// 将 s 进行 BASE64 编码
public static String getBASE64(String s) {
if (s == null) return null;
return (new sun.misc.BASE64Encoder()).encode( s.getBytes() );
}
// 将 BASE64 编码的字符串 s 进行解码
public static String getFromBASE64(String s) {
if (s == null) return null;
BASE64Decoder decoder = new BASE64Decoder();
try {
byte[] b = decoder.decodeBuffer(s);
return new String(b);
} catch (Exception e) {
return null;
}
}
【 在 crabonsand (crabonsand) 的大作中提到: 】
: 请问nobodyelse:
: 用base64编码你是怎么做的?
: 本人没有做过,请教一下,
: ...................
--
FROM 202.197.120.*
谢谢nobodyelse的回答。
不好意思,
我还想问:一个二进制文件或者一个jpeg文件,怎么把它变成base64编码,然后怎么从base64编程文件的?
【 在 nobodyelse (空无一人|水木第二错别字大王) 的大作中提到: 】
: BASE64 编码是一种常用的字符编码,在很多地方都会用到。JDK 中提供了非常方便的
: BASE64Encoder 和 BASE64Decoder,用它们可以非常方便的完成基于 BASE64 的编码和
: 解码。下面的两个小的函数,分别用于 BASE64 的编码和解码:
: ...................
--
FROM 202.112.50.*
文件流打开就好了
【 在 crabonsand (crabonsand) 的大作中提到: 】
: 谢谢nobodyelse的回答。
: 不好意思,
: 我还想问:一个二进制文件或者一个jpeg文件,怎么把它变成base64编码,然后怎么从base64编程文件的?
: ...................
--
FROM 202.197.120.*