使一个小型玩具应用发送API请求,响应始终是乱码。我使用Postman,PHP和Javascript尝试了完全相同的请求,都成功返回了有效的json字符串。
OkHttpClient client = new OkHttpClient();
MediaType mediaType = MediaType.parse("application/json;charset=UTF-8");
RequestBody body = RequestBody.create(mediaType, "{\"researchConductType\":" + researchConductType +",\"skip\":" + skip + ",\"limit\":" + limit + "}");
Request request = new Request.Builder()
.url("https://app.respondent.io/projects/search")
.post(body)
.addHeader("Accept", "application/json, text/plain, */*")
.addHeader("Origin", "https://app.respondent.io")
.addHeader("X-Requested-With", "XMLHttpRequest")
.addHeader("User-Agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/69.0.3497.81 Safari/537.36")
.addHeader("Content-Type", "application/json;charset=UTF-8")
.addHeader("Referer", "https://app.respondent.io/projects/browse")
.addHeader("Accept-Encoding", "gzip, deflate, br")
.addHeader("Accept-Language", "en-US,en;q=0.9")
.addHeader("Cookie", "ajs_user_id=null; ajs_group_id=null; consent=true")
.addHeader("Cache-Control", "no-cache")
.addHeader("Postman-Token", "8b10d40e-bd7f-4fd5-85cc-1381776ef549")
.build();
Response response = client.newCall(request).execute();
Log.d("HTTPResult", "ResponseCode: " + String.valueOf(response.code()));
return response.body().string();
我已经使用第三方HTTP请求捕获程序进行了验证,该应用程序和Postman的请求标头和正文都是相同的。
返回的结果字符串是这个
���������������r�H�?�*(�D]⯤�7 ���^Y�mu�dWU�LT$���6E� �*y�#��>�~����3o�O��d�$A��%_����J��s�s~��T�,3U��`>[���Y�W��������K�|4Y�M���m1�����G�9*/�zr�B_��WP{f*�g���l~~=�wl����$Y���>8�{�z��<\�#3�\���z���I�]+&��<سcz�<8^�ʩ�?ճQo��|d���e��r�����`���'~yu�[�9�*߾����'}z�.\�k(��\������9v��W|].&��x}?�rv��s����.][s/��j� VU��Ď����/r�H����8�KL.��$�0�I�������tz�#W�*��{j�7���Ğ�*xc.t����N3k��L��\�6h�$����P*�'�%2��l��qRN�c��
�����ߊg�ěWY��36�̎w�YWy/8�����̎��"�bm~j���H�L,/䳧�_�6,/^E����_�o�o��v���X��r�o��*ƩX��I�X�/��[F�39g?��'s��ՏcvB����u�}��u5M.�P��ͣ��f������l�٣tT���h�i*�NL�z��A&���C�L���ǣ�������W�/�ɓ�E���M��tn~ǣ�Ӹ� ��L�Zw��|����qs���M����\L̬�*�=x7�F�h�Х��5��XgHN�3S��`G9����(�I� �f
F!$1\�V����K���#0�5���Cܔ�y�IO�f6ף�%+ A]W�v�y���eD�':��0M*�u�x4��v�ŕk;�)|:�r�p�R�HE�y�3��̛˸���j�y�=4z1��>�mZNpB+��N�
Ә�,(̌28eiLd��PJx3;��w�|���ٴ�yuݺ���z��3.Or�I�ӌ�8� �T$J"F���G]g�F_n���v ce"�J�h"
�I�*MXɈ�g�:x_�����|�ߙq�m��\��Ͼ�WK���I
���"(U��+gz2zo7�_�2e�P�P�p�r�v{��D(��.���|l7�㗰�c8E��AI���K�����#�F�y9�V&N�qyq�^߮ԇG��鬼���K�������-����h:��×7��>�2�������]�`��"ՕɃ�$��3�``ׯ.:���u0/��O��r�D��\��U63)�w'�BC��Pq�Ԁ��/Pl1�7K$���b�E:U����@�b�=����+E�J���z�P�hπ�]��h�n47g��;s�l4y{:3sK�`�F�~#����}��&��!U
�>��
��-̟\���aEaR�X�Le��&ϔB�0�wXo[�^�ae��s��L�A�m�����GH���⢙Y#�H�Ei ��;3�)�(�Gu��ㆱ@K/'����
��T�/�/���@���������K+�_������zֲ�V�1������.�j�.4��NT�C8��L��[-ҷ���̓���dR"�(Pc`e@,%I#��`�Ѕ�/��/g��<xdލ2���X�Q�MX�j��(�;���"� ��0f���*$<f6;���_(S�ee�������|h���f<���1E6�Tx�f�]���^Z���<�*�����$��vy���RO�Č�e�8$�ᅩ& �H�SZ�M��(�
@2zY�w3A>ҳ���~$�s(�e�̎���ݴ\�-��
�jg�f�;7��NG�j��+\�RX��.4�v[NƣI�;Ъ�ȝ�`>����ap5eC[Ͷ�'�|�-��'���)gy���߀�\GS�q��Z�fȄ`0���j�S,�X�XL�����5���%01C���dE����.�AH6a��]�&x2�T��]��(ɜoa+�zم3_|�`§���f���jx���
����4���D{<�����C�M�n'&·�vw<$��!��~Z�R�A���o������E�"W9�)I�ȉH��R� �A04���$�%���c���6i;�������2�J�����B�������<�,�Rb:UZ䠳����B�FE�t�{,�V�p:.K*%<O�.@�����#�S��4��}���Uwu���<B��eb�"ZiA��D��(+�7����ۦo�eW��52�
答案 0 :(得分:1)
更改
.addHeader("Accept-Encoding", "gzip, deflate, br")
到
.addHeader("Accept-Encoding", "gzip")
并尝试运行。