fix: Removed explicit setting of HttpURLConnection Accept-Encoding header value as it disables automatic response decompression
#10
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Description
It seems like IONFLTRController.kt#L289 is explicitly setting the
Accept-Encodingheader's value togzipwhich results in responses from servers supporting response compression to be encoded. This however doesn't seem to be correctly handled inprocessUploadResponsewhich just reads the connection's input stream as text (connection.inputStream.bufferedReader().readText()). This unfortunately results in the responseBody being returned as a byte array converted to a string which isn't of much use.I believe this is also the cause of ionic-team/capacitor-file-transfer#26
Android's HttpURLConnection documentation indicates that specifically setting the
Accept-Encodingheader value disables automatic compression:Removing this header value leads to the response being automatically decompressed and returned correctly but it isn't yet clear as to why it was needed in the first place.
Type of changes
Tests
This was tested by uploading a file to an endpoint which respects the
Accept-Encodingheader value and returns a response body encoded to suit the request's desired encoding.Screenshots (if appropriate)
Checklist