2010-07-20 68 views
0

我想,以保证文件传输文件传输。我想我可以用某种校验和来做。如何校验与Java servlet和HttpURLConnection的

同时,由于一些内部问题,我需要流做。

我想转移之前和之后计算的摘要,但只会在传输结束时出现的错误。我正在寻找某种分块校验和,如果有任何错误,请重新发送。

有什么建议吗?

谢谢!

回答

1

我认为你将不得不做一些事情在堆栈更高层次 - HTTP不必重新发送响应中流部分中的能力。客户端发出HTTP请求后,必须收到整个HTTP响应,才能发出其他请求。 HTTP分块主要是为了便于保持连接的连接,而不必提前计算响应的内容长度。

如果我们谈论的是一个定制的客户端和服务器在这里(我假设我们是因为如果你在谈论一个浏览器的这个问题是没有意义的),那么也许有办法做到这将是对服务器将文件分割成几部分,并让客户端使用保持活动连接一次一个文件地请求每个文件。如果您发送回应中的每个片段的校验和(即在ETag头部中),则可以计算客户端上的校验和以确保您收到了正确的字节。如果校验和不匹配,请让客户端请求重新组合。

+0

我想以某种方式标签添加到标题,就像你说的,与消化。我不知道该怎么做,但我们来研究吧!我会研究ETag的建议。谢谢! 有一件事对我来说是一个惊喜:这里没有图书馆吗? – daigorocub 2010-07-21 14:57:25

+0

如果您使用的是Java,那么我推荐使用Apache HttpClient库来让您的生活更轻松。您将对客户端连接有更多的控制权,以及如何处理它们(即保留匿名,标题等) – 2010-07-21 15:41:48

+0

谢谢!我正在学习Apache HttpClient库。但是我发现了我错过的词:交易。它响铃吗?使用java交易文件上传? – daigorocub 2010-07-21 21:25:05