如何使用Java Socket从服务器下载文件?

时间:2010-12-20 22:25:06

标签: java sockets

我有关于将文件上传和下载到服务器的任务。我设法使用Java套接字上传部分但是我很难做下载部分。我应该使用Range:下载parellel。在我的请求中,我应该有Range:标头。但我不明白我将如何收到该HTTP GET请求的文件。我见过的所有例子都是关于上传文件的。我已经做到了。我可以上传.exe,图像,.pdf,任何东西,当我下载它们(通过我的浏览器)时,没有错误。你能帮我下载部分吗?你能给我一个例子,因为我真的没有得到它。

3 个答案:

答案 0 :(得分:0)

您需要从发出请求的同一个套接字中读取HTTP response。作为一个起点,只需打印出来。熟悉它后,开始解析它。该文件将在那里。

答案 1 :(得分:0)

这并没有直接回答你的问题,但无论如何它都是(IMO)值得说的......

如果您的家庭作业没有明确告诉您直接使用套接字,那么使用Java进行HTTP文件上传和下载的方法更简单,更好:

  • 在“http:”网址上使用java.net.URL.openConnection()将为您提供HttpURLConnection,您可以使用该Apache HttpClient向远程服务器发出GET,PUT,POST等请求。这将为您处理基本的HTTP协议。

  • {{3}}库做同样的事情,但是以更复杂的方式,处理内容(包括表单和MIME多部分),连接和凭证管理,代理等更多选项和更多钩子和路线发现等。

如果您的家庭作业的目的是教您与远程服务器通信的实用方法,那么使用这些类比尝试从套接字级别实现HTTP协议的子集更加实用。

(当然,目标可以让您更深入地了解“线路”级别的HTTP协议......这将使您当前的方法成为正确的方法。)

答案 2 :(得分:0)

谢谢你我做到了。我使用了一个字节数组并读取输入流并使用fileinputstream和fileoutputstream将其写入文件