2016-07-26 101 views
0

你們如何閱讀分塊響應在nodejs上? 原始數據:在nodeJS上解碼分塊響應請求

\u001f�\b\u0000\u0000\u0000\u0000\u0000\u0000\u0003���W�H�\u0000�s8��\u001f:�������G�\u001d�\u0005B&�$�\u0000��2\\N�j�\n���\u0003�\u0002�����Բe\u001b��;s���,��Q]]]]]U�]z�s;��5\u000b#7�m�a�\r��^����6����n\u001b;��7/�\u001e���~|@�1�?�����>1��گ����۳����g�?\u0011\[email protected]�B�Gn\f\u0000�W�\u001d\u001c\u001a�\u0018���U����X7�V\u0010\u000ejg'�[������\u001ak5-'v����\u001b�bϣQd\u001b~P�\u001a\u0011?�\u0005=\u001a3��1\u001bE�`��S<\u00193[5\u0017��lDys�a�$�� \u001eŎ1� �q?�\u000bPk�~�Z`$\u000b��AZ.\u0018��\u0011���\u000f\u0006����/�Ӭ���z�\u0006�U��\u000f\n�u��Μ:[5�+�\u0010�o�y�\u001b��>:�\u0002����-�ƴz\u001d�h7�h8�\u0015Ӣ�n\u000en��X7\b��^0B�۵~WR��\u0012��\t�Ng�ś\u0011�)A\u0000U�g�BÿU��V��ј�n׃��\u0005~���6>\u001c��\u00190�7\f�\u0011�\u001b\u0006�\u0015B�\u0017\u0015�g0�Z����5\u001c�6�\ri\u0018��N�>p'�y\u0013�Bw\u001c\u00131���WzME��)߸�\u0013�X�'\u0007_>�ߗ��}�P�X^@\u001d\u0016^B+}w`�ݎ]�e|��Ï_��~��fw�˻���϶�О\u0007ż����\u0010�\u000f��O�\u001e2p96��W��;\t�����/ٹQ���!\tl|����8\b��u��Ў!��~a����\u0003Kf�)X��sv�\u000eY���Bp�*\u000ff`�\u0015+\u000f2\u0013[R�\u000f��� \u001a��t\u000b�D�GEV���� ,������oy�\u001f��v��V�ޝ\u0007\u0017�\u0014���]�u��\u0018q�.\u000e'w\u0011��\u001f\u0005\u001e[]�\u000f0&\u0003�}�Ѹ7��><�6M׎�\u0006cFŤ��ج�\u0011���P\u0002�\u0003\u0006�N� �\u0003f\rX�\u0001dA����=:���\u0015�=\u0017 �\u0000 m��\n\u001a\u001a���\u0014?�eݬ6^�v`\u0001\u001f��# �î�\n/\u0004OP�2S\u0002��\n��[QLu�\u0007��ɫ��\u0005t2\\`�\u0010�_��a\u0010\u001aٸ\u0003��hV\u0014��U\u0005����j�},��\u0016��Q��Q\u000e���\t������|8$o\u000f~9�tt�\u0019_?\u001f�=\u0000�@\tN�\u00161�h9ʁ\u0005�b�㇊�5p�u�\u0018\u0015��y�pa6\u0017\u000f:���

的toString( 'utf-8')

���iw�8��9>���=ג��x�#��xK'��v�N/����DHbL�j.�5�����B�%9���~�M��"� �B����܍��'F�V�u}�V;8? ��;���rR?rcH�Z��� �0�ǭZ���ֺ]��pP;?��!�V���X�i9�ctVV��{�"���ꗈ�/�јč�(�cƟ�ɘ٪��7d#ʛ; '���(v������]�Z����#Y��r�`l�X͏~0�� �~!�f�^��5ȯ T~Poz4t��٪�\ф(~�+ܨ�������,�l94�՛�G��G� ���wsp��ǺApm��B߮��� ��p|Lu:+/ތXL \t ��?���y����4v�O/�c�Ƕ���f΀��a���0H�¾�P=��Ԫ��.�ᘴIoHÈ�v��;̛��㘈��%��*R�N������::=���������J����� Z����n�:-��������ۏ���������~����<(�Օ^��~��~����˱�L�r��IX�7�_~�.���� I`��}���AG����v)�K�G=�X2�L�2U�l\^��v��$���Vy43�Xy��ؒJ|4Ѱm�[�'z?*�����aY4^oo|�c� ���� ��"����<����Ĉ+�q8�����(����|�[email protected]�c�ƽ!v����i�v\63*&���fŌ��m��0�w!0k��� �Ǿ��AdT�h���i�T��X]-���/�f��Ҷ��� vcTx!x����|V�D1չtN&�����p��C�~U�Ahd���YQL{�`:ަ�����^Z�Fe�F9,G�d��ãs����r�����~:>8�@ N�1�h9ʁ�b��NJ�%p�u���y�xi6:�����wv���h�0������n�g�G��0>�뱱�R�-ա�+*Ff+��P��?wG�\1_�/uR˩P0����E�coR��nd�2 ��NT��^6�.�C����E�v��`���$�u�!�[�:�\߈��|Q����GA���ӏ6 \t ��3�Ϛ� RrŅ��.�|��eH}�Kg��5�z�$���m)���k&�ˆ��<�Y}F�l,� [email protected]����vȧa��� N��*I�U� ΄���������[email protected]����G71�@zu5.��Yw����vq����D�^��#Y���,�'Д�f7�/�&X�ӛw��N ��}G�����ꬮ:�:6X�\4�3��p��V���J�l�\�h^�E��e��9�crf�{@��4+vG�f‡~�,ڛ����O��fq[��+dB�c4�����P|�[cU�0�m����AZ3��"*Y3��n�!q2yڸl�G�(ڽ�o�f��[TKX^-����h ����d��l� ���Q�q+m>�%޲>2/bE�[b \t �$^]���7/-˸�ʞ;E=]��[email protected]㴰Y�wlͲ��A��X^`�@�QX�F��]9_e �=[eQF���x�,-�x�$4B�ϡ��Q(��8�ƚk��?��A��<��p�ƪh*q=_ h��� �~Ԩ�m/7�du�U�̔9�#��g�Dx������'�.�ʔ�p�w�Ot�����k�DFfW�@h�� \t �5H�=�����qu��z^Z �2U}@\����Lo4b�+X#Zs*{�f�8�o t },� ��A�|��9���z�0U)��!��$B���05!�(7l��c>Mf'wt���6���@�4���5uY��90C��>��ЫVRU��VqiƸ�i��m.NAx2�}`Wf�; ��V����,�0~s��?1w�@�7�%��2�����(�$�,�'2|TgI\��1�r��hr]�����l \t �[email protected]����{�o�NA���OǨ�ό�8z��� �f-���TfJ��oܒ�gXnBk��Xr9���v�Q�(S;��ڳ���1g���@Cb� ��%�d����t�5a~��Y��O��塋%��G��U�W���9��S{�=k����Y0f��sȃb�9��%����Y�+�E�G�@�z ��CA���0��R �l��a"+*m$��+�F �X�kޣ�����������~��/%��*��8l{��@˩�S�Z�,�81G��.p���6

用的toString翻譯這個( 'utf-8'),使之更加不可讀。

這裏是頭,

Content-Type: text/html; charset=UTF-8 
 
Transfer-Encoding: chunked 
 
Vary: Accept-Encoding, User-Agent

是否有任何選項,我可以這樣寫的分塊的數據。讓它對我來說是可讀的。我在刮一個網站,身體就是這樣展示的。

任何幫助,非常感謝。

謝謝

+0

這樣看來,你有「純二進制數據」 ... –

+0

是否有可能,我可以翻譯「純二進制數據」?或者它需要服務器端的密鑰? @MikeRobinson – damniatx

+0

**)**「純二進制數據」的意思是「它不是文本」,所以沒有辦法「翻譯」它,除非你確切地知道它代表什麼。 ** B)**傳輸編碼是一個紅色的鯡魚。除非你正在實現一個HTTP客戶端庫,否則它不應該關心你。你不應該這樣做,我認爲你在這裏沒有做。您應該添加更多的代碼,並提供一些關於您希望從服務器獲得的數據的詳細信息。 – Tomalak

回答

1

這很可能是gzipped的響應;如果您添加gzip: true,則回覆可能會再次被人類讀取。

從請求文檔https://github.com/request/request

爲了向後兼容,響應壓縮不受 默認支持。要接受gzip壓縮的響應,請將gzip選項設置爲 true。請注意,通過請求傳遞的主體數據自動解壓縮 ,而響應對象未經修改,並且如果服務器發送了壓縮響應,將包含 壓縮數據。

var request = require('request') 
    request(
    { method: 'GET' 
    , uri: 'http://www.google.com' 
    , gzip: true 
    } 
    , function (error, response, body) { 
     // body is the decompressed response body 
     console.log('server encoded the data as: ' + (response.headers['content-encoding'] || 'identity')) 
     console.log('the decoded data is: ' + body) 
    } 
).on('data', function(data) { 
    // decompressed data as it is received 
    console.log('decoded chunk: ' + data) 
    }) 
    .on('response', function(response) { 
    // unmodified http.IncomingMessage object 
    response.on('data', function(data) { 
     // compressed data as it is received 
     console.log('received ' + data.length + ' bytes of compressed data') 
    }) 
    })