这就是我想做的事情,并且需要一些帮助。
我有一个源网址和一个目标网址。我想要做的是将文件从源 url 复制到目标 url,但我想避免在再次上传文件之前在系统上本地复制该文件。
此外,我们还必须获取内容长度,因为目标 api 需要它(其自定义)。如果我使用 HttpUrlConnection 类,那么我可以得到它......但是据我所知,使用 java.net 进行除 GET 之外的任何操作都存在一些问题。 (源文件是巨大的图像/视频文件),所以我可以使用apache httpclient 3.1。但我该如何解决这个问题呢?
有什么想法吗?
- Ember
最佳答案
您尝试过以下操作吗?
- 使用 GetMethod.getResponseBodyAsStream 以流形式获取 GET 响应的正文
- 并将其通过 PutMethod.setRequestBody“管道”到 PUT 请求的正文中。
查看此tutorial .
编辑
您应该能够使用 GetMethod.getResponseContentLenght 获取 GET
的响应大小(对应于 Content-Length
header (如果提供)。
那么我建议您查看以下 PUT
方法之一:setRequestContentLenght , addContentLenghtRequestHeader , setContentChunked .
关于java - httpclient 获取和放置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2096629/