请求响应后身体中的奇怪字符

时间:2016-07-26 11:17:43

标签: javascript json node.js express postman

我正在使用NodeJS和Request发布JSON并获得包含数据的结果。

我使用Postman设置了这个请求,然后我获得了完全可读的JSON数据。

{
  "d": {
    "__type": "Qvision.WoningenModule.Lib.aanbodcollection",
    "testOutput": "",
    "filter": null,
     ...
     etc.
  }
}

我从Postman生成了代码片段,因此我可以将其放在我的NodeJS服务器上,并且需要Request。

当我尝试在节点服务器上运行编码正文的请求时。

      ��`I�%&/m�{J�J��t�`$ؐ@�������iG#)�*��eVe]f@�흼��{����{����;�N'���?\fdl��J�ɞ!���?~|?"~�G�����~�߿�^�=��'.������V�by�/��f�2?/&�,[N�ٴ*�|�R��F�y�~�nW��^��ϋ����-�eI�Vm���Z�������|�ѣ��"���b�}�h�|+4���~QWU����>������Ge6�ˆ�_��"����^o��bF�HO<��GM[gYK���E�\/���G[��UN^��eN��͊�Ң��A_?�n���Ƙ˼Z�������f@��z�Qb=)��Zѯ��|�Fo+z�.~m.�z��墚�%��̫�uMs�y1�x�uA����>���Ų��/�fZ��h����"����Y����͐Ƣ@w���w����5+s;�����1��2�$��G��?������Ų�b�O�ˬ����9���~P-gy�L��|i/�����Q��$_��H�E��_�|Y���� <s8��/��8�����$��?~��C�J#{�3������o6ķ{�wSU4����YK���j�L�D�K�D��K�kan '$����uQ��ĺ�]�� ��J4Z������O������O?������O~�'��~��d?�N�{���G��{;����ݽ����*��}j���O�@�N�^=�ڊ>+�Dƍ�]%QM�wjy���������!�)� ��������g���?�&����R����i�|�6��N�U�v��o�> ���;����`��?xpp��"f��������;�v��U�sДy~V�����w�o�m~�:#�������x�Ӄ��ß������`g��A�$�����>�G�z����b���ߧ$�;�;�_�Mȼ�lv�`��po�vxNB{Y�WP?�����{{�j��t���g�˽����C�>1j��G         jE���?���Ux�/ww���b2�DI���ݧ��aK� k5���}n]���|�tgw��:�;;���J���S�O��>�O��/���\x�=��?��/�>B����O���;��:ݻ�G��9�%�v<�h䱶^:��{|�KF����{�����o�4����.�M�<�=��w�����I����+M��>i�{�ݽ��=�|oߨb3ޟ�.����v�����j��n�z|x��*1u?�~JF����à������c&}mФK�س���f���t���&ELF���e��>�Y��?�.fUճ�;��oh����oЪ�?��#��si�)Z����9������~��/>������Ҍ��}���KR�Cf����=��� 6�$3������Y5�~����vw�Hż�lvHf|�������Rh�s�T��gnj����ݿo{�Y1�ԉ�o���{�`g_�kv̸��>y��>4���ϒ�;}@����l�Ϛ���O*l�S#�1ey����uЌ�����'�ۆ��o�ʤu�"җ��O~�,�{�����[Xo1��FQ����t���F�sk���h�|��d�������=��٦���>�)F��=ܷif3���.)�J)_�~VͶ��>E��ΰ�9�Y�����`��N��f��{� �ώ��z�Oi����턺���O?}`����1�~���;v6a=�̶�)-���6��7g�7tI���}�T���Mf������*ofy��ZbY��.�B��M���g�l� 3�?ͷ;�"���n�@_|sv{��� ���ݦo����ߟ�@�m\"�w����o?=��,��s;�v��7��Y�r�!%���c��Y���[R7����h�ڭX���)�}������ޣ���~�p�ٱ�~�(ͱc��d�g��������[1��ٱ�~�H�K��h��NHT��u��5��w������e���ɢ�LZt�)=s~��C^�v������Ɓ!K� �����F�x�c՟W-�I���U4�5Ɠl88�ױ�;����ᅬx������5I�R84%�J�s��|�<���ʚS��ӇdQ��O����W���g�GR{�~�=���r�ׇ�0����UL��bv��������&��>%"�^v��)��},�h�?+v��n����33����q�?Z8~H|���gɊ{}�k���C#�?kF������c�����^6�W��9,2�]������0�5���X.�D�0��&;�SD(�������ڈ��� 5F�����1�?��<�j��#���Ů�QψS�m����|�%������/�_�<~�����9�e^^��nה���
�ϕ)���ރO�?��G�~�v�v�/3���i���������g�WZP}p���p��g�?ʑ����DT����l�#���{fWz��1�^�~�{��X����r��]
�vMw�ώ)�����?�p`2 0�?K�������m�?k��둖�|�gz�i���σ�| ���J����/YF��R�G?k��}b���#$߿1C~g��C�C������/� ��%K�9

喜欢这个。 在Postman中数据很好,但在Node中它并不是。怎么会这样? 据我所知,我的要求没有错:

var request = require("request");

var options = { method: 'POST',
  url: '****',
  headers: 
   { 'postman-token': '****',
     cookie: '****',
     'accept-language': 'nl-NL,nl;q=0.8,en-US;q=0.6,en;q=0.4',
     'accept-encoding': 'gzip, deflate, br',
     referer: '****',
     'content-type': 'application/json; charset=UTF-8',
     'user-agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.103 Safari/537.36',
     'x-requested-with': 'XMLHttpRequest',
     origin: '****',
     accept: 'application/json, text/javascript, */*; q=0.01',
     'cache-control': 'no-cache',
     pragma: 'no-cache',
     'content-length': '1035',
     connection: 'keep-alive',
     host: '****' },
  body: '{"****************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************}',
  //encoding: null
   };

request(options, function (error, response, body) {
  if (error) throw new Error(error);
  console.log(body);
});

console.log提供第二个代码段中显示的数据。

有人可以向我解释一下发生了什么以及为什么这在邮递员中有效但在节点中没有?

2 个答案:

答案 0 :(得分:12)

您查看的数据很可能是压缩的(使用gzip),因为您发送的标题表示您愿意接受此类响应。在gzip: true选项中设置request()request应自动解压缩传递给您回调的body

只需移除'accept-encoding': 'gzip, deflate, br'对象中的headers行即可请求gzip压缩。

答案 1 :(得分:1)

从标头中删除“ Accept-Encoding”:“ gzip,deflate”对我有用。