2016-03-22 8 views
0

Ich verwende eine API und ich möchte nur https Anfragen an den Endpunkt machen. Der Endpunkt gibt jedoch kein https vor, er würde auch auf http antworten. Nodejs Request Modul: Wie kann man sicherstellen, dass die erhaltene Antwort über HTTPS gesendet wird?

Im Folgenden ist der Code, den ich verwende, um HTTPS-Anfragen an die API zu machen:

var options = { 
    url: "https://something.com", 
    method: "POST", 
    headers: { 
     'Content-Type': 'application/json' 
    }, 
    agentOptions: { 
     cert: fs.readFileSync(certFile), 
     key: fs.readFileSync(keyFile), 
     rejectUnauthorized: true 
    } 
    }; 
    var fetchToken = function(options) { 
     request({ 
      url: options.url, 
      method: options.method, 
      headers: options.headers, 
      body: body, 
      agentOptions: options.agentOptions 
     },function(err,res){ 

     }); 
     } 

I request Modul bin mit der Anforderung an den Endpunkt in Senden. Nun, wie kann ich sicher sein, dass die Antwort, die ich von dem Endpunkt erhalten tatsächlich über https, nicht http gesendet wurde.

Antwort

0

Wenn Sie Ihre Anfrage an den https-Endpunkt gesendet haben und der Server die https-Anfrage nicht an http umleitet, kommunizieren Sie über https mit dem Server.

+0

Woher weiß ich, dass der Server nicht auf http umgeleitet wurde? –

+0

Aus der Dokumentation, mit der Sie verknüpft sind: followRedirect - Folgen Sie HTTP 3xx-Antworten als Weiterleitungen (Standard: true). Diese Eigenschaft kann auch als Funktion implementiert werden, die das Antwortobjekt als einzelnes Argument erhält und sollte wahr zurückgeben, wenn Weiterleitungen fortgesetzt werden oder andernfalls falsch. - Verwenden Sie dies, um festzustellen, ob es zu einer http-URL umgeleitet und abgebrochen wird. –

Verwandte Themen