Мне нужно загрузить файл на сервер Amazon S3 с "Content-Type", "application/octet-stream"
в качестве запроса PUT
Я пытаюсь сделать это с помощью следующего кода, но получаю неверный запрос
try {
URL url = new URL(urlString);
URLConnection uc = url.openConnection();
HttpsURLConnection connection = (HttpsURLConnection) url.openConnection();
connection.setRequestMethod("PUT");
connection.setRequestProperty("Connection", "Keep-Alive");
connection.setRequestProperty("Content-Type", "application/octet-stream");
connection.setDoOutput(true);
connection.connect();
FileInputStream is = new FileInputStream(sourceFile);
OutputStream os = connection.getOutputStream();
byte[] buffer = new byte[4096];
int bytes_read;
while ((bytes_read = is.read(buffer)) != -1) {
os.write(buffer, 0, bytes_read);
}
os.flush();
os.close();
connection.getResponseCode();
System.out.println("HTTP response code: " + connection.getResponseCode());
System.out.println("HTTP response error: " + connection.getResponseMessage());
return true;
} catch (IOException e) {
e.printStackTrace();
return false;
}
Я получаю код ответа
HTTP response code: 400
HTTP response error: Bad Request
Что не так с этим кодом?
Код на стороне сервера правильный, так как я могу загрузить сообщение от почтальона.