由于某种原因,此请求GET永远不会返回,但仅在Node.js中。我已经尝试过浏览器,curl,httparty,ruby的Net :: Http,postman,clojure,它们都运行良好。 Node.js不会。
这将按照您的期望
返回echo "require('https').get('https://github.com/jakecraige.json', function(res) { console.log(res); });" | node
这永远不会返回,它最终会抛出一个ECONNRESET
echo "require('https').get('https://gateway.rpx.realpage.com/rpxgateway/PricingAndAvailability.svc?wsdl', function(res) { console.log(res); });" | node
如果有人能够对此提供一些非常有帮助的见解。
谢谢!
答案 0 :(得分:1)
看起来它想要来自node.js的SSLv3_method
答案 1 :(得分:0)
$ curl 'https://gateway.rpx.realpage.com/rpxgateway/PricingAndAvailability.svc' -I
HTTP/1.1 400 Bad Request
尝试提供错误处理程序,看看你得到了什么。
答案 2 :(得分:0)
无论我选择哪个网址,您的代码都会挂起。我相信这个节点试图确保我们不会过早退出,为了以防万一,运行它的事件循环。您列出的所有其他技术都是同步的,而不是事件驱动的。此外,res
可能不是您想要打印的内容,因为它是节点的内部响应对象。试试这个:
cat <<EOF | node
require("https").get("https://github.com/jakecraige.json",
function(res) {
var body = ''
res.
on('data', function(data) { body += data}).
on('end', function() { console.log(body); process.exit(0); });
}
);
EOF
答案 3 :(得分:0)
将@Constarr链接与这个原始帖子结合起来我有这个构造的请求获得有效的响应。
var https = require('https');
https.globalAgent.options.secureProtocol = 'SSLv3_method';
https.get("https://gateway.rpx.realpage.com/rpxgateway/PricingAndAvailability.svc?wsdl", function(res) {
console.log("Got response: " + res.statusCode);
}).on('error', function(e) {
console.log("Got error: " + e.message);
});