我已经在墙上砸了好几天,所以我转向Stackoverflow的聪明人帮忙。这是交易:
我正在构建一个必须与我公司的应用服务器通信的Electron应用。服务器连接必须通过HTTPS。我正在使用Node的内置https
模块。向服务器发出请求时,我收到以下错误:
{ [Error: write EPROTO]
code: 'EPROTO',
errno: 'EPROTO',
syscall: 'write',
address: undefined }
我已经完成了大量的谷歌搜索,我发现的大部分内容都指向代理,但我没有使用代理。我尝试了以下内容:
rejectUnauthorized: false
secureProtocol
选项(无结果)--tls-cipher-list
(不知道我在那里做什么)我可以毫无问题地通过curl
提出请求。不幸的是,我无法发布我正在提出请求的实际网址。
以下是一些说明问题的示例代码(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问题还是具有应用服务器配置的东西?这个错误正在扼杀我并阻止我在工作中达到一个里程碑,所以任何帮助将不胜感激。谢谢!
答案 0 :(得分:0)
要解决此问题,您需要设置https-proxy,可以使用以下命令完成此操作:
npm config set https-proxy http://proxy.example.com:8080