2013-10-02 71 views
0

我試圖使用節點的request模塊向https url發出請求。下面的代碼片段。節點https轉發代理客戶端服務器

var request = require('request') 
,r = request.defaults(
     {'proxy':'https://localhost:8443', 
     strictSSL: false, 
     rejectUnauthorized: false, 
     }); 

function sendHttpsReq(){ 
r.get('https://my.https.url/api/model', function (error, response, body) { 
    if (!error && response.statusCode == 200) { 
      console.log(body); 
     } 
    }); 
} 

使用上面的代碼,如果我使用一個HTTP代理和做一個HTTP請求,代理服務器獲取請求。但是對於通過https代理的https網址,代理服務器永遠不會收到請求。我正在使用一個簡單的基於節點-http代理的代理服務器在本地服務器上運行。

+0

會不會是HTTPS代理呈現非受信任的證書? –

+0

@NitzanShaked這些選項應該是通過證書信任.'strictSSL:false,rejectUnauthorized:false' – Gireesh

回答

4

看起來像多人在使用它作爲https轉發代理時遇到node-http-proxy問題。

以下問題記錄在他們的github存儲庫中。

https://github.com/nodejitsu/node-http-proxy/issues/453

https://github.com/nodejitsu/node-http-proxy/issues/454

我不得不使用節點HTTP代理的HTTPS轉發代理偏離,而不是從下面的博客中使用的代碼。

http://newspaint.wordpress.com/2012/11/05/node-js-http-and-https-proxy/

+0

您可以分享您的版本的https轉發代理進行比較? –

+0

@jodytate我用了這個分叉的副本。 https://github.com/joeferner/node-http-mitm-proxy – Gireesh

相關問題