From 96ad0b37621baf9f2d06f4ebafcfb612854b34f3 Mon Sep 17 00:00:00 2001 From: Jonathan Cobb Date: Tue, 31 Mar 2020 22:51:18 -0400 Subject: [PATCH] write headers before opening output stream --- .../org/cobbzilla/util/http/HttpUtil.java | 26 ++++++++++++------- 1 file changed, 16 insertions(+), 10 deletions(-) diff --git a/src/main/java/org/cobbzilla/util/http/HttpUtil.java b/src/main/java/org/cobbzilla/util/http/HttpUtil.java index 4baeedc..8e26b97 100644 --- a/src/main/java/org/cobbzilla/util/http/HttpUtil.java +++ b/src/main/java/org/cobbzilla/util/http/HttpUtil.java @@ -97,17 +97,23 @@ public class HttpUtil { if (headers2 != null) addHeaders(urlConnection, headers2); if (data != null) { urlConnection.setDoOutput(true); - final OutputStream upload = urlConnection.getOutputStream(); - if (multipartFileName != null) { - urlConnection.setRequestProperty(CONTENT_TYPE, MULTIPART_FORM_DATA); - final MultipartEntityBuilder mb = MultipartEntityBuilder.create(); - mb.addBinaryBody(multipartFileName, data); - mb.build().writeTo(upload); - - } else { - IOUtils.copyLarge(data, upload); + OutputStream upload = null; + try { + if (multipartFileName != null) { + urlConnection.setRequestProperty(CONTENT_TYPE, MULTIPART_FORM_DATA); + final MultipartEntityBuilder mb = MultipartEntityBuilder.create(); + mb.addBinaryBody(multipartFileName, data); + + upload = urlConnection.getOutputStream(); + mb.build().writeTo(upload); + + } else { + upload = urlConnection.getOutputStream(); + IOUtils.copyLarge(data, upload); + } + } finally { + if (upload != null) upload.close(); } - upload.close(); } return urlConnection.getInputStream(); }