2015-12-02 138 views
0

我不是第一个问这个问题,我明白Node可能对发送的头文件非常严格,但我的眼睛在响应头文件中没有看到任何奇怪的东西,所以我我希望有一个解释,如果不是解决的话。节点JS GET请求错误与HPE_INVALID_HEADER_TOKEN

我有节点制作GET请求一个非常具体的内部资源。我试过通过request-promise,request和标准http库(只是要彻底)提出此请求。该请求通过curl或在浏览器中加载完美无缺。我的节点请求失败,出现HPE_INVALID_HEADER_TOKEN错误。

$ curl -IS 'http://192.168.0.1/getdeviceinfo/info.bin' 
HTTP/1.1 200 OK 
Date: Wed, 02 Dec 2015 16:42:45 GMT 
Server: nostradamus 1.9.5 
Connection: close 
Etag: Aug 28 2015, 07:57:20 
Transfer-Encoding: chunked 
HTTP/1.0 200 OK 
Content-Type: text/html 

我知道你将无法访问该网址,但没有人看到在该组织你所期望的一个节点请求呛这些头什么?我无法控制标题,但至少能很好地知道哪一个会引起麻烦。

回答

1

HTTP/1.0 200 OK之前的Content-Type不应该在这样的头文件中,这就是为什么节点抱怨。服务器发送格式错误的响应。

+0

该死的。是的,我现在看到它。在节点上下文中,我是否有任何选项可以解决这个问题,最终访问请求的主体?响应服务器实际上是请求者连接到的设备,并且有百万人在野外。推出标题更新是一个困难的主张......充其量。 –

+0

我有一个非常类似的问题。源网站正在发送一个链接头,其中包含导致Node崩溃的HTML。为了解决这个问题,我写了一个单独的脚本,它包含我需要的数据,然后从我的Node脚本中调用这个脚本 – Mike

+0

您是否有更多的细节可以分享?我甚至不知道该去哪里学习如何识别格式错误的标题。我也有权访问我遇到此问题的服务器,但不明白需要修复的问题。 – sclarky