Отправка нескольких файлов на сервер webdav за один запрос - PullRequest
0 голосов
/ 30 апреля 2020

Я хочу отправить на сервер 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();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...