
自己署名証明書を持つ Web サーバーから基本的な応答を取得するためだけに次のコードを使用しています。基本認証が必要です。
私は以下のコードを試していますNode.js(http
モジュールを使用) ですが、数秒後に失敗します。サーバーから応答がないため、タイムアウトになるのだと思います。
{[Error: socket hang up] code: 'ECONNRESET' }
Problem with request: undefined
Code:<BR>
const fs = require('fs');<BR>
const http = require('http');<BR>
const https = require('https');<BR>
var options = {<BR>
method: "GET",<BR>
hostname: "ServerName.com",<BR>
port: 8445,<BR>
rejectUnauthorized: 'false',<BR>
cert: fs.readFileSync('Certname.cer'),<BR>
ca: [ fs.readFileSync('Certname.cer') ],<BR>
checkServerIdentity: () => { return null; },<BR>
path: '/finesse/api/User/TEST/Dialogs'<BR>
Authorization:'Basic',<BR>
cacheControl: 'no-cache',<BR>
acceptEncoding: "gzip, deflate",<BR>
username: user,<BR>
password: passw,<BR>
Connection: 'keep-alive'<BR>
};<BR>
var req = http.request(options, function(res){<BR>
var responseBody ="";<BR>
console.log(`server status: ${res.statusCode}`);<BR>
console.log("Responcer Headers: %j" , res.headers);<BR>
res.setEnconding("UTF-8");<BR>
res.once("data", (chunk)=>{ <BR>
console.log(chunk);<BR>
});<BR>
res.on('data', function(chunk) { <BR>
console.log(`---chunk-- ${chunk.length}`);<BR>
responseBody +=chunk;<BR>
});<BR>
res.on("end", function() {<BR>
fs.writeFile("userDialog.html", responseBody, function (error) {<BR>
if (error) throw error; <BR>
});<BR>
});<BR>
});<BR>
req.on("error", function(err) {<BR>
console.error(err);<BR>
console.log(`Problem with request: ${err.mesage}`)<BR>
});<BR>
同じリクエストを郵便配達員正しいコンテンツを返します。Postman からリクエスト コードをコピーして試してみましたが、結果は同じでした。Postman では、ヘッダーにさらに 2 つのオプションがあります。
"User-Agent": "PostmanRuntime/7.13.0", "Postman-Token": ....
それらが必要かどうかわかりません...何かアイデアはありますか?
どうもありがとう!