次のコードは、ローカルにデプロイされ、リクエストを受信し、それを別のサーバーに転送してライセンスを検証すると機能します。
var express = require("express");
var app = express();
var request = require("request");
var ddKey = "someKey";
var ddSecret = "someSecret";
var ProId = "someId";
var testLicense = "someLicense";
app.get("/", function(req, res){
var license = req.query["license"] || "test";
var url = "https://"+ddKey+":"+ddSecret+"@licenseServer.com/products/"+ProId+"/licenses/check_valid?key="+license;
request.get(url, {"auth": {"user": ddKey, "pass": ddSecret}, "json": true}, function(error, response, body){
res.send("BODY:", response.body);
});
});
var port = process.env.PORT || 3001;
app.listen(port, function(){
console.log("listening on port ", port);
});
ただし、heroku にデプロイし、heroku アプリにリクエストを送信すると、次のメッセージとともに「データが受信されていません」という画面が表示されます。
エラー 324 (net::ERR_EMPTY_RESPONSE): サーバーはデータを送信せずに接続を閉じました。
heroku ログを確認すると、heroku が次のエラーを示していることがわかります。
不適切な形式の HTTP 応答
正しい形式の応答を構成するものを見つけることができません。
ご協力いただきありがとうございます。