2017-07-25 5 views
0

次のURLの本文を取得しようとしていますhttps://extranet.ores.be/de/services/price-simulation npmモジュール要求を使用しています。ことは、このリンクのために、モジュールが正しく動作しないと思います。なぜなら、maxRedirectsに達したためにエラーが連続して発生するからです。私は、最初の呼び出しが同じURLへの位置ヘッダーの応答であるため、思考とはいをデバッグしました。無限ループを行います。思うに、リダイレクトはFirefoxやChromeの問題ではないようです...ブラウザが正しく解決しています。何か不足していますか?またはプロキシ問題かもしれませんか?httpがチャンクされた応答を受け取ると無限リダイレクトループに陥る

var proxiedRequest = request.defaults({proxy: "http://proxy.xxx.xxxxxxx.be:XXXX", maxRedirects : 5}) 
    proxiedRequest.get(that.buildRequest(url.url), (error, response, body) => { 
     let html = null; 
     let status = null; 
     let failed = false; 

     if (!error && response.statusCode === 200 && (response.headers['content-type'].includes('text/html') || response.headers['content-type'].includes('application/xhtml+xml'))){ 
      html = body; 
     } else if(!error && response.statusCode != 200) { 
      status = response.statusCode; 
      failed = true; 
     }else if(error) { 
      failed = true; 
     } 

     that.emit('getFinished', { html : html, status : status, error : error, failed : failed, url : url }); 
    }) 

buildRequest Methodeの:

は、ここに私のコードの一部である

this.buildRequest = function(url){ 
     return { 
      url: url.href, 
      headers: { 
       'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; WOW64; rv:54.0) Gecko/20100101 Firefox/54.0', 
       'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8', 
       'Connection' : 'keep-alive', 
       'Accept-Encoding': this.selectAcceptEncodingHeader(url.protocol) 
      }, 
      gzip: true, 
      deflate: true 
     } 
    }.bind(this); 
this.selectAcceptEncodingHeader = function(protocol){ 
     if(protocol === 'https:'){ 
      return 'gzip, deflate, br'; 

     } 

     return 'gzip, deflate'; 
    }.bind(this); 

は私がマルチパート使用しようとしたが、それは、リクエストに応答はありません。

アイデア?事前に感謝

答えて

0

ブラウザは、ノードからのモジュールリクエストとは異なり、Cookieがデフォルトで有効になっているため、指定されたURLを正しく処理します。はい、それはそれだった

var proxiedRequest = request.defaults({ 
    proxy: "http://proxy.xxx.xxxxxxx.be:XXXX", 
    maxRedirects : 5, 
    jar: true // enable cookie 
}); 
+0

は、あなたのプロキシ要求のためにこれを試してみてください。ありがとうございます :-) –

関連する問題