Дооснащение - распаковка gzip - PullRequest
0 голосов
/ 24 июня 2019

Мне нужно реализовать для одного из моих сетевых запросов способ распаковать gzip, затем декодировать base 64 и затем преобразовать байты в String. Я использую модификацию и реализовал, как показано ниже.

Я пытался реализовать это сам, используя этот ответ ( okhttp 3: как распаковать ответ gzip / deflate вручную, используя Java / Android ), но безуспешно.

Я также пытался оставить это поле пустым, потому что, очевидно, okhttp делает это вручную, но что бы я ни делал, я получаю результаты, показанные ниже.

Реализация модернизации

                .connectTimeout(connectTimeout, TimeUnit.SECONDS)
                .writeTimeout(writeTimeout, TimeUnit.MINUTES)
                .readTimeout(readTimeout, TimeUnit.MINUTES)
                .build();

        if (User.getInstance().isDevMode()) {
            retrofit = new Retrofit.Builder()
                    .client(client)
                    .baseUrl(App.getContext().getResources().getString(R.string.dev_server))
                    .addConverterFactory(ScalarsConverterFactory.create()).build();
        }

Ожидаемые результаты после распаковки и декодирования данных должны представлять собой строку, например «Failed: Bad internet» (обычно намного дольше).

Фактические результаты, например: ��m�]��k{�ȵ.�W��yNw�lJA᎜/G��[˶bɭN&�HED ��b����>k�­�"APm'�{�[ Q�������]W���ί������q!�����y��_���^,���'�Cz+b�dg��G?���$�y��t�T�<aI:��-�/���g6�d<e��HYr��Op<��fi�U���m��?�?,eƷ���/���_�iG�7�����y����E��ןZG/?�i]�\��>������_�.>\����_�<̋)�h�ہg�|�ķ�G�1�m~x*��,��~<Y!"}��o���e��_9Γ���f2�l�0���Wy*e__�O��){'�;��_�I���1�a�����^֥����"���0_�Xx�)�z8N�8O�Oq���~�a���o.�.7��'o�x������,g�e�Å�����H���K�՛���E��<ϗ�_��e�L��b,��D,�Ǔd�ϴ��B+�\0��_���oxF��[�i�*�R1f?�W }U�Y�pt*�$��,/�ٶ�x��d.iI^]�����Ǻ g!�_�ҤX�?/E��2��a���$?ø<-$�rO���i���p�L�y

...