Modulo modulo base

modulohttp

Il modulo http incapsula l'elaborazione delle richieste e delle risposte HTTP, permettendoci di creare facilmente un server http o simulare un client per avviare una richiesta http. Utilizzando il modulo http, gli sviluppatori possono scrivere ed elaborare facilmente il codice relativo al protocollo HTTP.

Quello che segue è un semplice esempio per creare un server Web e restituire una risposta ciao mondo:

1 2 3 4 5 6 7
const http = require('http'); const server = new http.Server(8080, function(request) { request.response.write('Hello World!'); }); server.start();

In questo esempio, introduciamo il modulo http, quindi definiamo un oggetto server http e lo colleghiamo al numero di porta 8080 locale. Quando viene inviata una richiesta a questo numero di porta, la risposta verrà impostata sulla stringa "Hello World!".

Allo stesso tempo, il modulo http contiene anche oggetti client,http.ClientSimula l'ambiente del browser per memorizzare nella cache i cookie e memorizzarli durante la visitaurlQuando si trasporta l'oggetto client http cookie corrispondente. Puoi usarlohttp.ClientAccedi alle richieste dell'interfaccia http, esegui download http e una serie di operazioni relative a http. Sotto èhttp.ClientEsempi di applicazione:

1 2 3 4
var http = require('http'); var httpClient = new http.Client(); httpClient.get('http://fibjs.org');

Nell'esempio sopra, ahttp.Clientobject, quindi chiama getil metodo per avviare una richiesta http GET a fibjs.org.

Inoltre,http.ClientCi sono alcune altre proprietà e metodi che possono essere chiamati, come cookiesetc.

Il modulo https è un alias del modulo http. Puoi require('https')anche utilizzare il modulo http.

oggetto

Request

Creare un oggetto di richiesta http, vedereHttpRequest

1
HttpRequest http.Request;

Response

Creare un oggetto di risposta http, vedereHttpResponse

1
HttpResponse http.Response;

Creare un oggetto cookie http, vedereHttpCookie

1
HttpCookie http.Cookie;

Server

Creare un server http, vedereHttpServer

1
HttpServer http.Server;

Client

Creare un client http, vedereHttpClient

1
HttpClient http.Client;

HttpsServer

Creare un server https, vedereHttpsServer

1
HttpsServer http.HttpsServer;

Handler

Creare un oggetto gestore del protocollo http, vedereHttpHandler

1
HttpHandler http.Handler;

Repeater

Creare un oggetto gestore di inoltro di richieste http, vedereHttpRepeater

1
HttpRepeater http.Repeater;

funzione statica

fileHandler

Creare un processore di file statico http per rispondere ai messaggi http con file statici

1 2 3
static Handler http.fileHandler(String root, Object mimes = {}, Boolean autoIndex = false);

Parametri di chiamata:

  • root: stringa, percorso radice del file
  • mimes: Oggetto, impostazioni MIME estese
  • autoIndex: Booleano, se supportare l'esplorazione dei file della directory, l'impostazione predefinita è false, non supportata

Risultati restituiti:

  • Handler, restituisce un file processore statico per l'elaborazione dei messaggi http

fileHandler supporta la precompressione gzip.Quando la richiesta accetta la codifica gzip e il file nomefile.ext.gz esiste nello stesso percorso, questo file verrà restituito direttamente, evitando così il carico del server causato dalla compressione ripetuta.


setClientCert

Imposta il certificato client predefinito

1 2
static http.setClientCert(X509Cert crt, PKey key);

Parametri di chiamata:

  • crt:X509Cert, certificato, utilizzato per inviare al server per verificare il client
  • key:PKey, chiave privata, utilizzata per parlare con il client

request

Invia una richiesta http all'oggetto stream specificato e restituisce il risultato

1 2
static HttpResponse http.request(Stream conn, HttpRequest req) async;

Parametri di chiamata:

Risultati restituiti:


Invia una richiesta http all'oggetto stream specificato e restituisce il risultato

1 2 3
static HttpResponse http.request(Stream conn, HttpRequest req, SeekableStream response_body) async;

Parametri di chiamata:

Risultati restituiti:


richiesta specificataurle restituire il risultato

1 2 3
static HttpResponse http.request(String method, String url, Object opts = {}) async;

Parametri di chiamata:

  • method: stringa, specifica il metodo di richiesta http: GET, POST, ecc.
  • url: Stringa, specificareurl, deve essere l'host contenente completourl
  • opts: Oggetto, specificare informazioni aggiuntive

Risultati restituiti:

opts contiene opzioni aggiuntive per la richiesta, supportate come segue:

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
{ "method": "GET", // specify the http request method: GET, POST, etc, default: GET. "protocol": "http", "slashes": true, "username": "", "password": "", "hostname": "", "port": "", "pathname": "", "query": {}, "body": SeekableStream | Buffer | String | {}, "json": {}, "pack": {}, "headers": {}, "response_body": SeekableStream // specify response.body stream }

Tra loro il corpo,json, il pacchetto non deve apparire contemporaneamente. Il valore predefinito è {}, che non contiene informazioni aggiuntive


Utilizzare il metodo GET per richiedere quanto specificatourl, e restituisce il risultato, che equivale a request("GET", ...)

1 2
static HttpResponse http.request(String url, Object opts = {}) async;

Parametri di chiamata:

  • url: Stringa, specificareurl, deve essere l'host contenente completourl
  • opts: Oggetto, specificare informazioni aggiuntive

Risultati restituiti:

opts contiene opzioni aggiuntive per la richiesta, supportate come segue:

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
{ "method": "GET", // specify the http request method: GET, POST, etc, default: GET. "protocol": "http", "slashes": true, "username": "", "password": "", "hostname": "", "port": "", "pathname": "", "query": {}, "body": SeekableStream | Buffer | String | {}, "json": {}, "pack": {}, "headers": {} }

Tra loro il corpo,json, il pacchetto non deve apparire contemporaneamente. Il valore predefinito è {}, che non contiene informazioni aggiuntive


Richiedi opzioni specificateurle restituire il risultato

1
static HttpResponse http.request(Object opts) async;

Parametri di chiamata:

  • opts: Oggetto, specificare informazioni aggiuntive

Risultati restituiti:

opts contiene opzioni aggiuntive per la richiesta, supportate come segue:

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
{ "method": "GET", // specify the http request method: GET, POST, etc, default: GET. "protocol": "http", "slashes": true, "username": "", "password": "", "hostname": "", "port": "", "pathname": "", "query": {}, "body": SeekableStream | Buffer | String | {}, "json": {}, "pack": {}, "headers": {} }

Tra loro il corpo,json, il pacchetto non deve apparire contemporaneamente. Il valore predefinito è {}, che non contiene informazioni aggiuntive


get

Utilizzare il metodo GET per richiedere quanto specificatourl, e restituisce il risultato, che equivale a request("GET", ...)

1 2
static HttpResponse http.get(String url, Object opts = {}) async;

Parametri di chiamata:

  • url: Stringa, specificareurl, deve essere l'host contenente completourl
  • opts: Oggetto, specificare informazioni aggiuntive

Risultati restituiti:

opts contiene opzioni aggiuntive per la richiesta, supportate come segue:

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
{ "method": "GET", // specify the http request method: GET, POST, etc, default: GET. "protocol": "http", "slashes": true, "username": "", "password": "", "hostname": "", "port": "", "pathname": "", "query": {}, "body": SeekableStream | Buffer | String | {}, "json": {}, "pack": {}, "headers": {} }

Tra loro il corpo,json, il pacchetto non deve apparire contemporaneamente. Il valore predefinito è {}, che non contiene informazioni aggiuntive


post

Utilizzare il metodo POST per richiedere quanto specificatourle restituisce il risultato, che equivale a request("POST", ...)

1 2
static HttpResponse http.post(String url, Object opts = {}) async;

Parametri di chiamata:

  • url: Stringa, specificareurl, deve essere l'host contenente completourl
  • opts: Oggetto, specificare informazioni aggiuntive

Risultati restituiti:

opts contiene opzioni aggiuntive per la richiesta, supportate come segue:

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
{ "method": "GET", // specify the http request method: GET, POST, etc, default: GET. "protocol": "http", "slashes": true, "username": "", "password": "", "hostname": "", "port": "", "pathname": "", "query": {}, "body": SeekableStream | Buffer | String | {}, "json": {}, "pack": {}, "headers": {} }

Tra loro il corpo,json, il pacchetto non deve apparire contemporaneamente. Il valore predefinito è {}, che non contiene informazioni aggiuntive


del

Utilizzare il metodo DELETE per richiedere quanto specificatourl, e restituisce il risultato, che equivale a request("DELETE", ...)

1 2
static HttpResponse http.del(String url, Object opts = {}) async;

Parametri di chiamata:

  • url: Stringa, specificareurl, deve essere l'host contenente completourl
  • opts: Oggetto, specificare informazioni aggiuntive

Risultati restituiti:

opts contiene opzioni aggiuntive per la richiesta, supportate come segue:

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
{ "method": "GET", // specify the http request method: GET, POST, etc, default: GET. "protocol": "http", "slashes": true, "username": "", "password": "", "hostname": "", "port": "", "pathname": "", "query": {}, "body": SeekableStream | Buffer | String | {}, "json": {}, "pack": {}, "headers": {} }

Tra loro il corpo,json, il pacchetto non deve apparire contemporaneamente. Il valore predefinito è {}, che non contiene informazioni aggiuntive


put

Utilizzare il metodo PUT per richiedere quanto specificatourle restituisce il risultato, che equivale a request("PUT", ...)

1 2
static HttpResponse http.put(String url, Object opts = {}) async;

Parametri di chiamata:

  • url: Stringa, specificareurl, deve essere l'host contenente completourl
  • opts: Oggetto, specificare informazioni aggiuntive

Risultati restituiti:

opts contiene opzioni aggiuntive per la richiesta, supportate come segue:

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
{ "method": "GET", // specify the http request method: GET, POST, etc, default: GET. "protocol": "http", "slashes": true, "username": "", "password": "", "hostname": "", "port": "", "pathname": "", "query": {}, "body": SeekableStream | Buffer | String | {}, "json": {}, "pack": {}, "headers": {} }

Tra loro il corpo,json, il pacchetto non deve apparire contemporaneamente. Il valore predefinito è {}, che non contiene informazioni aggiuntive


patch

Utilizzare il metodo PATCH per richiedere quanto specificatourle restituisce il risultato, che equivale a request("PATCH", ...)

1 2
static HttpResponse http.patch(String url, Object opts = {}) async;

Parametri di chiamata:

  • url: Stringa, specificareurl, deve essere l'host contenente completourl
  • opts: Oggetto, specificare informazioni aggiuntive

Risultati restituiti:

opts contiene opzioni aggiuntive per la richiesta, supportate come segue:

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
{ "method": "GET", // specify the http request method: GET, POST, etc, default: GET. "protocol": "http", "slashes": true, "username": "", "password": "", "hostname": "", "port": "", "pathname": "", "query": {}, "body": SeekableStream | Buffer | String | {}, "json": {}, "pack": {}, "headers": {} }

Tra loro il corpo,json, il pacchetto non deve apparire contemporaneamente. Il valore predefinito è {}, che non contiene informazioni aggiuntive


Utilizzare il metodo HEAD per richiedere quanto specificatourle restituisce il risultato, che equivale a request("HEAD", ...)

1 2
static HttpResponse http.head(String url, Object opts = {}) async;

Parametri di chiamata:

  • url: Stringa, specificareurl, deve essere l'host contenente completourl
  • opts: Oggetto, specificare informazioni aggiuntive

Risultati restituiti:

opts contiene opzioni aggiuntive per la richiesta, supportate come segue:

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
{ "method": "GET", // specify the http request method: GET, POST, etc, default: GET. "protocol": "http", "slashes": true, "username": "", "password": "", "hostname": "", "port": "", "pathname": "", "query": {}, "body": SeekableStream | Buffer | String | {}, "json": {}, "pack": {}, "headers": {} }

Tra loro il corpo,json, il pacchetto non deve apparire contemporaneamente. Il valore predefinito è {}, che non contiene informazioni aggiuntive

proprietà statiche

STATUS_CODES

Oggetto, restituisce una raccolta di codici di stato di risposta HTTP standard e le rispettive brevi descrizioni.

1
static readonly Object http.STATUS_CODES;

cookies

NArray, restituisce il client httpHttpCookieelenco oggetti

1
static readonly NArray http.cookies;

timeout

Intero, interroga e imposta il timeout

1
static Integer http.timeout;

enableCookie

Booleano, interruttore funzione cookie, abilitato per impostazione predefinita

1
static Boolean http.enableCookie;

autoRedirect

Commutazione della funzione booleana di reindirizzamento automatico, abilitata per impostazione predefinita

1
static Boolean http.autoRedirect;

enableEncoding

Interruttore booleano della funzione di decompressione automatica, abilitato per impostazione predefinita

1
static Boolean http.enableEncoding;

maxHeadersCount

Intero, interroga e imposta il numero massimo di intestazioni di richiesta, il valore predefinito è 128

1
static Integer http.maxHeadersCount;

maxHeaderSize

Intero, interroga e imposta la lunghezza massima dell'intestazione della richiesta, il valore predefinito è 8192

1
static Integer http.maxHeaderSize;

maxBodySize

Intero, interroga e imposta la dimensione massima del corpo, in MB, il valore predefinito è -1, nessun limite di dimensione

1
static Integer http.maxBodySize;

userAgent

Stringa, interroga e imposta l'identificatore del browser nella richiesta http

1
static String http.userAgent;

poolSize

Intero, interroga e imposta il numero massimo di connessioni cache keep-alive, predefinito 128

1
static Integer http.poolSize;

poolTimeout

Intero, interroga e imposta il timeout della connessione della cache keep-alive, predefinito 10000 ms

1
static Integer http.poolTimeout;

http_proxy

Stringa, interroga e imposta il proxy di richiesta http, supporta il proxy http/https/socks5

1
static String http.http_proxy;

https_proxy

Stringa, esegui query e imposta il proxy di richiesta https, supporta il proxy http/https/socks5, se non impostato o impostato su vuoto, http_proxy verrà riutilizzato

1
static String http.https_proxy;