当我尝试使用我正在编写的 Node.js 客户端连接到网络服务器时,出现上述错误。
但是当我尝试连接到服务器时出现错误。
'DEPTH_ZERO_SELF_SIGNED_CERT'
这是发送请求的代码。并且关闭证书检查不是一个有效的选项。我需要确保连接的安全。
var options =
{
hostname: baseUri,
port: 443,
path: 'oauth',
method: 'POST',
requestCert: true,
ca:fs.readFileSync('Comodo_PositiveSSL_bundle.crt'),
rejectUnauthorized: true,
headers: {
//'User-Agent': USER_AGENT,
'Content-Type': 'application/x-www-form-urlencoded',
'Content-Length': data.length
}
};
var req = http.request(options, (res) => {
console.log('statusCode: ', res.statusCode);
console.log('headers: ', res.headers);
res.on('data', (d) => {
process.stdout.write(d);
});
});
req.write(data)
req.end();
req.on('error', (e) => {
console.error(e);
});
Run Code Online (Sandbox Code Playgroud)
如果有人可以告诉我如何正确设置认证以免生成错误?
证书包的图片。正如您所看到的,该捆绑包仅包含验证服务器本身提供的证书所需的根证书。
我想创建一个可以用两种不同方式初始化的对象。我找到了 3 种不同的方法来完成同一件事,我想知道我的哪种方法是最好的,以及是否有另一种更好的方法。
方法
attr_accessor :id, :status, :dateTime
def initialize *args
if args.length == 1
puts args[0]
@id = args[0]['id']
@status = args[0]['status']
@dateTime = args[0]['dateTime']
else
@id = args[0]
@status = args[1]
@dateTime = args[2]
end
end
Run Code Online (Sandbox Code Playgroud)
方法2:(注意我需要手动设置参数作为第二种方式)
attr_accessor :id, :status, :dateTime
def initialize hash = nil
if hash != nil
@id = hash['id']
@status = hash['status']
@dateTime = hash['dateTime']
end
end
Run Code Online (Sandbox Code Playgroud)
方法3:(注意,我需要手动设置参数作为第二种方式,并且它与我的第二种方式几乎相同,只是不在构造函数中)
attr_accessor :id, :status, :dateTime
def initialize
end
def self.create hash
if hash != nil
obj = …Run Code Online (Sandbox Code Playgroud) 每当我尝试将json解析为OrderedDict时,它的结果顺序与json不同.我试试这样:
from collections import OrderedDict
data = OrderedDict(json.loads(resp.read().decode("utf-8")), object_pairs_hook=OrderedDict)
Run Code Online (Sandbox Code Playgroud)
我做错了什么,如果是的话,我该怎么做才能修复它,或者在python中它是不可能的?
我已经看到了类似的东西object_pairs_hook=collections.OrderedDict但是甚至没有正确执行.它无法解决参考.