@@ -52,7 +52,15 @@ public <T extends Parsable> UploadResult<T> handleResponse(@Nonnull final Respon
5252 Objects .requireNonNull (response );
5353 Objects .requireNonNull (factory );
5454 try (final ResponseBody body = response .body ()) {
55+ UploadResult <T > uploadResult = new UploadResult <>();
5556 if (Objects .isNull (body )) {
57+ if (response .code () == HttpURLConnection .HTTP_CREATED ) {
58+ final String location = response .headers ().get ("location" );
59+ if (!Objects .isNull (location ) && !location .isEmpty ()) {
60+ uploadResult .location = new URI (location );
61+ return uploadResult ;
62+ }
63+ }
5664 throw new ApiException (ErrorConstants .Messages .NO_RESPONSE_FOR_UPLOAD );
5765 }
5866 try (final InputStream in = body .byteStream ()){
@@ -64,16 +72,11 @@ public <T extends Parsable> UploadResult<T> handleResponse(@Nonnull final Respon
6472 .withResponseHeaders (HeadersCompatibility .getResponseHeaders (response .headers ()))
6573 .build ();
6674 }
67- UploadResult <T > uploadResult = new UploadResult <>();
6875 if (response .code () == HttpURLConnection .HTTP_CREATED ) {
6976 if (body .contentLength () > 0 ) {
7077 final ParseNode uploadTypeParseNode = parseNodeFactory .getParseNode (contentType , in );
7178 uploadResult .itemResponse = uploadTypeParseNode .getObjectValue (factory );
7279 }
73- final String location = response .headers ().get ("location" );
74- if (!Objects .isNull (location ) && !location .isEmpty ()) {
75- uploadResult .location = new URI (location );
76- }
7780 } else {
7881 final ParseNode parseNode = parseNodeFactory .getParseNode (contentType , in );
7982 final UploadSession uploadSession = parseNode .getObjectValue (UploadSession ::createFromDiscriminatorValue );
0 commit comments