Входной поток в выходной поток

У меня проблема с публикацией файла в REST API. documentInputStream исходит из предыдущей функции для получения InputStream файла и работает (записывает файл в мою файловую систему.

Я также проверил во время отладки, и у documentInputStream есть count = 35125, который является моим размером файла (35 КБ)

Но сервер не получает ни одного файла. (Это не проблема сервера, потому что он работает с почтальоном).

Любая помощь?

  // Send document
    HttpURLConnection submitConnection = (HttpURLConnection) new URL(submitURL).openConnection();
    submitConnection.setRequestMethod("POST");
    submitConnection.setDoOutput(true);
    submitConnection.setUseCaches(false);
    // creates a unique boundary based on time stamp
    String boundary = "===" + System.currentTimeMillis() + "===";
    submitConnection.setRequestProperty("Content-Type","multipart/form-data; boundary=" + boundary);
    submitConnection.setRequestProperty("User-Agent", "Test Agent");

    // Get output stream
    DataOutputStream dataStream = new DataOutputStream(submitConnection .getOutputStream()); 

    // Write file input stream to the connection stream
    IOUtils.copy(documentInputStream, dataStream);
    // Flush
    dataStream.flush();

    // Get the response 
    BufferedReader rd = new BufferedReader(new InputStreamReader(submitConnection.getInputStream()));

Есть идеи, почему? Что мне не хватает?

user10498758 31.10.2018 12:48

это может быть полезно: stackoverflow.com/questions/11766878/…

mangusta 31.10.2018 13:14

Какая разница? И MultipartEntity устарел ...

user10498758 31.10.2018 13:40

разница в том, что вы по какой-то причине используете IOUtils. попробуйте вместо этого использовать OutputStream

mangusta 31.10.2018 13:53

Я использовал IOUtils для передачи входного потока файла в выходной поток

user10498758 31.10.2018 14:16

так вы пробовали подготовить оболочку файла и отправить ее напрямую в OutputStream без IOUtils?

mangusta 31.10.2018 14:18

Как я могу это сделать?

user10498758 31.10.2018 14:35

вы можете сначала сохранить байты файла из «documentInputStream» в буфер, а затем отправить этот буфер в выходной поток. Я не имею в виду, что вы должны отправить его таким образом. Пока это сделано для тестирования

mangusta 31.10.2018 15:00
0
8
54
0

Другие вопросы по теме