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
7const 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
4var http = require('http');
var httpClient = new http.Client();
httpClient.get('http://fibjs.org');
Nell'esempio sopra, ahttp.Clientobject, quindi chiama get
il metodo per avviare una richiesta http GET a fibjs.org.
Inoltre,http.ClientCi sono alcune altre proprietà e metodi che possono essere chiamati, come cookies
etc.
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
1HttpRequest http.Request;
Response
Creare un oggetto di risposta http, vedereHttpResponse
1HttpResponse http.Response;
Cookie
Creare un oggetto cookie http, vedereHttpCookie
1HttpCookie http.Cookie;
Server
Creare un server http, vedereHttpServer
1HttpServer http.Server;
Client
Creare un client http, vedereHttpClient
1HttpClient http.Client;
HttpsServer
Creare un server https, vedereHttpsServer
1HttpsServer http.HttpsServer;
Handler
Creare un oggetto gestore del protocollo http, vedereHttpHandler
1HttpHandler http.Handler;
Repeater
Creare un oggetto gestore di inoltro di richieste http, vedereHttpRepeater
1HttpRepeater http.Repeater;
funzione statica
fileHandler
Creare un processore di file statico http per rispondere ai messaggi http con file statici
1
2
3static 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
2static 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
2static HttpResponse http.request(Stream conn,
HttpRequest req) async;
Parametri di chiamata:
- conn:Stream, specifica l'oggetto flusso per gestire la richiesta
- req:HttpRequest, da inviareHttpRequestoggetto
Risultati restituiti:
- HttpResponse, restituisce la risposta del server
Invia una richiesta http all'oggetto stream specificato e restituisce il risultato
1
2
3static HttpResponse http.request(Stream conn,
HttpRequest req,
SeekableStream response_body) async;
Parametri di chiamata:
- conn:Stream, specifica l'oggetto flusso per gestire la richiesta
- req:HttpRequest, da inviareHttpRequestoggetto
- response_body:SeekableStream, specificare il flusso di risposta.body
Risultati restituiti:
- HttpResponse, restituisce la risposta del server
richiesta specificataurle restituire il risultato
1
2
3static 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:
- HttpResponse, restituisce la risposta del server
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
2static 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:
- HttpResponse, restituisce la risposta del server
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
1static HttpResponse http.request(Object opts) async;
Parametri di chiamata:
- opts: Oggetto, specificare informazioni aggiuntive
Risultati restituiti:
- HttpResponse, restituisce la risposta del server
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
2static 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:
- HttpResponse, restituisce la risposta del server
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
2static 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:
- HttpResponse, restituisce la risposta del server
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
2static 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:
- HttpResponse, restituisce la risposta del server
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
2static 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:
- HttpResponse, restituisce la risposta del server
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
2static 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:
- HttpResponse, restituisce la risposta del server
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
head
Utilizzare il metodo HEAD per richiedere quanto specificatourle restituisce il risultato, che equivale a request("HEAD", ...)
1
2static 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:
- HttpResponse, restituisce la risposta del server
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.
1static readonly Object http.STATUS_CODES;
cookies
NArray, restituisce il client httpHttpCookieelenco oggetti
1static readonly NArray http.cookies;
timeout
Intero, interroga e imposta il timeout
1static Integer http.timeout;
enableCookie
Booleano, interruttore funzione cookie, abilitato per impostazione predefinita
1static Boolean http.enableCookie;
autoRedirect
Commutazione della funzione booleana di reindirizzamento automatico, abilitata per impostazione predefinita
1static Boolean http.autoRedirect;
enableEncoding
Interruttore booleano della funzione di decompressione automatica, abilitato per impostazione predefinita
1static Boolean http.enableEncoding;
maxHeadersCount
Intero, interroga e imposta il numero massimo di intestazioni di richiesta, il valore predefinito è 128
1static Integer http.maxHeadersCount;
maxHeaderSize
Intero, interroga e imposta la lunghezza massima dell'intestazione della richiesta, il valore predefinito è 8192
1static Integer http.maxHeaderSize;
maxBodySize
Intero, interroga e imposta la dimensione massima del corpo, in MB, il valore predefinito è -1, nessun limite di dimensione
1static Integer http.maxBodySize;
userAgent
Stringa, interroga e imposta l'identificatore del browser nella richiesta http
1static String http.userAgent;
poolSize
Intero, interroga e imposta il numero massimo di connessioni cache keep-alive, predefinito 128
1static Integer http.poolSize;
poolTimeout
Intero, interroga e imposta il timeout della connessione della cache keep-alive, predefinito 10000 ms
1static Integer http.poolTimeout;
http_proxy
Stringa, interroga e imposta il proxy di richiesta http, supporta il proxy http/https/socks5
1static 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
1static String http.https_proxy;