Heim  >  Artikel  >  Web-Frontend  >  Zusammenfassende Einführung in Bezug auf die HTTP-Anfrage von nodejs

Zusammenfassende Einführung in Bezug auf die HTTP-Anfrage von nodejs

不言
不言nach vorne
2019-04-01 11:50:571797Durchsuche

Der Inhalt dieses Artikels ist eine zusammenfassende Einführung in die http-Anfragen von nodejs. Er hat einen gewissen Referenzwert. Ich hoffe, dass er für Sie hilfreich ist.

Über das von Node bereitgestellte http-Modul können Sie HTTP-Anfragen über die bereitgestellten Methoden get() und request() initiieren. get() ist eine Kapselung der Methode request(), die zum Initiieren praktisch ist Anfragen abrufen Um Post-Anfragen zu implementieren, muss die Methode request() gekapselt werden.

request()-Methode

let req = http.request("http://www.baidu.com", (res) =>{
    console.log(res.statusCode);
});
req.end();//必须调用end()方法结束请求
Es ist zu beachten, dass bei Verwendung der request()-Methode zum Initiieren einer http-Anfrage die request()-Methode ein Anforderungsobjekt und die zurückgegebene Anforderung zurückgibt Das Objekt muss aufgerufen werden. Die Methode end() zeigt an, dass die Anforderungsaktion abgeschlossen wurde. Andernfalls wird die Anforderung angehalten und auf den Abschluss der Anforderungsaktion gewartet.

Request()-Methodenparameterproblem: Der erste Parameter von

request() kann direkt eine URL-Adresse sein, und der zweite Parameter ist eine Rückruffunktion, nachdem eine Anfrage abgeschlossen und die Serverantwort empfangen wurde. Die Rückruffunktion Der erste Parameter von request() kann ein Anforderungsdatenkonfigurationsobjekt sein. Der zweite Parameter ist eine Rückruffunktion, nachdem eine Anforderung abgeschlossen und die Serverantwort empfangen wurde. Die Rückruffunktion verfügt nur über einen Parameter, nämlich das Antwortobjekt resrree. Es ist zu beachten, dass die request()-Methode nicht gleichzeitig die URL-Adresse und das Anforderungsdatenkonfigurationsobjekt übergeben kann. Mit anderen Worten, die request()-Methode kann dies tun Übergeben Sie nur zwei Parameter
get()-Methode

let req = http.request("http://www.baidu.com", (res) =>{
    console.log(res.statusCode);
});
req.end();//必须调用end()方法结束请求
Wenn die get()-Methode eine http-Anfrage initiiert, gibt die get()-Methode auch ein Anforderungsobjekt zurück, dies ist jedoch nicht erforderlich Rufen Sie die end()-Methode über dieses Anforderungsobjekt auf. Dies ist dasselbe wie request(). Die Methoden sind unterschiedlich.
Problem mit den Parametern der get()-Methode:

Die Parameter der get()-Methode und der request()-Methode sind gleich, das heißt, es ist nicht erforderlich, end() aufzurufen Verfahren.

Methode zum Festlegen des Anforderungszeitlimits

Um das Anforderungszeitlimit festzulegen, können Sie die setTimeout()-Methode des von der get()- oder request()-Methode zurückgegebenen Anforderungsobjekts verwenden.

let req = http.request({hostname:"www.baiduc.com",port:80}, (res) =>{
    console.log(res.statusCode);
});
req.end();//必须调用end()方法结束请求
Wenn nach 1 Millisekunde keine Antwort eingeht, wird die Rückruffunktion setTimeout ausgelöst. Zu diesem Zeitpunkt kann die Anfrage direkt beendet werden.

2. Sie können auch einen Timer einrichten, um ihn selbst zu implementieren, wie zum Beispiel:


let req = http.get("http://www.baidu.com", (res) =>{
    console.log(res.statusCode);
});
Antwortdaten abrufen

get()- und request()-Methode Rückruffunktionen Das Antwortobjekt res trägt keine Antwortdaten. Wenn Sie die Antwortdaten erhalten möchten, müssen Sie die Daten abhören und Ereignisse über das Antwortobjekt beenden.

let req = http.get("http://www.baidu.com", (res) =>{
    console.log(res.statusCode);
});
 req.setTimeout(1,()=>{
     console.log(`请求超时了`);
     req.abort();//终止请求
 });
[Verwandte Empfehlungen:

node.js Video-Tutorial]

Das obige ist der detaillierte Inhalt vonZusammenfassende Einführung in Bezug auf die HTTP-Anfrage von nodejs. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:segmentfault.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen