Httpsパッケージのrequestメソッドを使用してOpenShift REST APIと通信するNodeJSアプリを作成しようとしています。コードは次のとおりです。
var https = require('https');
var options = {
Host: 'openshift.redhat.com',
port: 443,
path: '/broker/rest/api',
method: 'GET'
};
var req = https.request(options, function(res) {
console.log(res.statusCode);
res.on('data', function(d) {
process.stdout.write(d);
});
});
req.end();
req.on('error', function(e) {
console.error(e);
});
しかし、これは私にエラーを与えています(ステータスコード500が返されます)。コマンドラインでcurlを使用して同じことをしたとき、
curl -k -X GET https://openshift.redhat.com/broker/rest/api
サーバーから正しい応答を取得しています。
コードに何か問題がありますか?
Curlとnodeが送信したヘッダーを比較すると、次の追加が見つかりました。
_headers: {
accept: '*/*'
}
_
options
に修正しました。
Curlが送信するヘッダーを確認するには、_-v
_引数を使用できます。
_curl -vIX GET https://openshift.redhat.com/broker/rest/api
_
ノードでは、console.log(req._headers)
の直後にreq.end()
があります。
クイックヒント:https.get()
の代わりにhttps.request()
を使用できます。メソッドをGET
に設定し、req.end()
を呼び出しますあなた。