webdav - 在一个请求中将多个文件发送到 webdav 服务器
问题描述
我想在一个请求中向 webdav 服务器发送 100 个文件。我正在获取消息列表,然后创建它们的二进制正文部分。这是我的代码,它让我得到 301 http 错误响应代码。当我发送一个文件时,它正在工作,但预期的行为是发送部分文件。我希望它在服务器上一个一个地创建,可以吗?
CloseableHttpClient client = HttpClients.createDefault();
HttpPut httpPost = new HttpPut("http://localhost:8888/webdav"); // I also tried with / at the end
MultipartEntityBuilder builder = MultipartEntityBuilder.create();
messages.forEach(m -> {
builder.addBinaryBody("file", new File(Paths.get(m.getPath()).toAbsolutePath().toString()),
ContentType.APPLICATION_OCTET_STREAM, m.getFileName() + ".encryptedByAes");
builder.addBinaryBody("file", new File(Paths.get(m.getAesPath()).toAbsolutePath().toString()),
ContentType.APPLICATION_OCTET_STREAM, m.getFileName() + ".aes");
});
HttpEntity multipart = builder.build();
httpPost.setEntity(multipart);
UsernamePasswordCredentials creds
= new UsernamePasswordCredentials("test", "test");
httpPost.addHeader(new BasicScheme().authenticate(creds, httpPost, null));
CloseableHttpResponse response = client.execute(httpPost);
if (response.getStatusLine().getStatusCode() != HTTP_OK) {
throw new WebDavException("Error while executing request to webdav server with messages");
}
client.close();
解决方案
推荐阅读
- xml - Bash 将 XML 解析为逗号分隔的列表
- jquery - 如何使用带有对象的 jQuery 和 Javascript 数组创建任意数量的子列表?
- python - 尝试/除了python处理和int()函数
- python - 代码正在保存单独的文本文件,我们可以使用 pandas.dataframe() 以整洁干净的格式保存在 excel 中
- c# - 从 .ini 文件中读取波斯语字符串
- reactjs - 更新父组件状态时反应子组件卸载
- jquery - jQuery文件上传 - 文件被裁剪时文件名“未定义”
- powerquery - 复制整个表只复制 PowerQuery 中的前 1000 行
- r - 如何“整理”用于 R 分析的 Quickbooks 期刊数据
- javascript - 带有更多 html 验证的自定义错误消息