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

我正在使用NodeJS和请求发布JSON并获取结果中的数据。

我用Postman设置了这个请求,并把JSON数据返回,这是完全可读的。

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

我从邮差生成的代码片段,所以我可以把它放在我的NodeJS服务器与需求的要求。

当我尝试在我的节点服务器上运行一个编码体的请求。

    `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 Q b=)  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      o 6ķ{ 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  N HT  u  5  w      e   ɢ L Zt )=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 

喜欢这个。 在邮差数据是好的,但在节点不是。 怎么会这样? 就我所知,我的请求没有任何问题:

 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给出了第二个代码片段中显示的数据。

有人可以向我解释发生了什么事情,为什么这个工作在邮递员,而不是在节点?

您看到的数据很可能是压缩的(使用gzip),因为您正在发送一个标题,表示您愿意接受这样的响应。 在你的request()选项中设置gzip: true ,并且request应该自动解压缩传递给你的callback的body

或者只是删除'accept-encoding': 'gzip, deflate, br' headers对象中的'accept-encoding': 'gzip, deflate, br'行不要求gzip压缩。