几天来,我一直在脑子里碰壁,所以我向Stackoverflow的聪明人寻求帮助。这是交易:
系统详细资料
问题说明
我正在构建一个Electron应用程序,该应用程序必须与我公司的应用程序服务器进行通信。服务器连接必须通过HTTPS。我正在使用Node的内置
https
模块。向服务器发出请求时,出现以下错误:{ [Error: write EPROTO] code: 'EPROTO', errno: 'EPROTO', syscall: 'write', address: undefined }
我已经做了很多Google搜寻工作,而且我发现的大多数内容都指向代理,但我没有使用代理。我尝试了以下方法:
rejectUnauthorized: false
secureProtocol
选项(无结果)--tls-cipher-list
(不知道我在那做什么)我可以通过
curl
发出请求,而不会出现问题。不幸的是,我无法发布正在请求的实际URL。样例代码
这是一些说明此问题的示例代码(Coffeescript):
https = require 'https'
options = {
host: '[Application URL]'
path: '/'
method: 'GET'
port: 443
}
options.agent = new https.Agent(options)
callback = (response) ->
str = ''
console.log response
console.log "STATUS: #{response.statusCode}"
console.log "HEADERS: #{JSON.stringify(response.headers)}"
response.setEncoding 'utf-8'
response.on 'data', (chunk) -> str += chunk
response.on 'end', -> console.log str
makeRequest = ->
req = https.request options, callback
req.on 'error', (err) ->
console.log err
req.end()
makeRequest()
有谁知道什么可能导致此问题?是 Node 问题还是应用程序服务器的配置有问题?此错误正在杀死我,阻止我在工作中达到里程碑,因此,我们将不胜感激。谢谢!
最佳答案
要解决此问题,您需要设置https-proxy,可以使用以下命令完成此操作:
npm config set https-proxy http://proxy.example.com:8080