【问题标题】:Cannot print body of agario correctly无法正确打印 agario 的正文
【发布时间】:2016-12-05 12:26:48
【问题描述】:

我遇到了一个奇怪的问题,我不知道如何解决。我使用以下代码打印响应的正文。

proxy_response.setEncoding('utf-8');
proxy_response.on('data', function (chunk) {
    console.log('BODY: ' + chunk);
});
proxy_response.on('end', function() {
    console.log('No more data in response.')
});

此代码适用于this 网站,但如果我尝试使用Agar.io,它会失败并打印出奇怪的字符序列,即使编码是正确的(根据响应的元字符集属性) .我可以通过在搜索栏中输入view-source:agar.io 来使用 chrome 查看正确的源(这是我希望我的程序打印的内容)。 This 是响应的样子。 This 是我很困惑的代码。

【问题讨论】:

  • 首先,听起来你是个坏人。其次,您需要包含所有用于创建 proxy_response 对象的代码,以便我们可以有一个工作示例。
  • 感谢@PrestonS 提供帮助。我编辑了这个问题,希望你能帮忙:) 代码:pastebin.com/vt8DCHu9
  • 奇怪的是它适用于我测试过的所有其他网站,只是不适用于 agario。

标签: javascript node.js


【解决方案1】:

Agar.io 的响应被压缩。

在您看到的响应标头中:

Content-Encoding: gzip

解压方法见this answer。基本上,通过管道将其发送到gunzip

【讨论】:

  • 谢谢!你刚刚用大量的咖啡为我节省了很多通宵调试时间。我真是个笨蛋。
猜你喜欢
  • 2017-03-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-04-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多