módulo http
O módulo http encapsula o procesamento de solicitudes e respostas HTTP, o que nos permite crear facilmente un servidor http ou simular un cliente para iniciar unha solicitude http. Usando o módulo http, os desenvolvedores poden escribir e procesar facilmente código relacionado co protocolo HTTP.
O seguinte é un exemplo sinxelo para crear un servidor web e devolver unha resposta Hello World:
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();
Neste exemplo, introducimos o módulo http, despois definimos un obxecto de servidor http e vinculamos ao número de porto local 8080. Cando se envía unha solicitude a este número de porto, a resposta establecerase na cadea "Hello World!".
Ao mesmo tempo, o módulo http tamén contén obxectos cliente,http.ClientSimula o contorno do navegador para almacenar as cookies na caché e almacenalas durante a visitaurlAo levar o obxecto cliente http cookie correspondente. podes usalohttp.ClientAcceda a solicitudes de interface http, realice descargas http e unha serie de operacións relacionadas con http. Abaixo estáhttp.ClientExemplos de aplicación:
1
2
3
4var http = require('http');
var httpClient = new http.Client();
httpClient.get('http://fibjs.org');
No exemplo anterior, ahttp.Clientobxecto e, a continuación, chama get
ao método para iniciar unha solicitude http GET a fibjs.org.
ademáis,http.ClientHai outras propiedades e métodos que se poden chamar, como cookies
etc.
O módulo https é un alias do módulo http. require('https')
Tamén podes usar o módulo http.
obxecto
Request
Cree un obxecto de solicitude http, consulteHttpRequest
1HttpRequest http.Request;
Response
Cree un obxecto de resposta http, consulteHttpResponse
1HttpResponse http.Response;
Cookie
Cree un obxecto cookie http, consulteHttpCookie
1HttpCookie http.Cookie;
Server
Cree un servidor http, consulteHttpServer
1HttpServer http.Server;
Client
Cree un cliente http, consulteHttpClient
1HttpClient http.Client;
HttpsServer
Cree un servidor https, consulteHttpsServer
1HttpsServer http.HttpsServer;
Handler
Cree un obxecto controlador de protocolo http, consulteHttpHandler
1HttpHandler http.Handler;
Repeater
Cree un obxecto controlador de reenvío de solicitudes http, consulteHttpRepeater
1HttpRepeater http.Repeater;
función estática
fileHandler
Crea un procesador de ficheiros http estáticos para responder ás mensaxes http con ficheiros estáticos
1
2
3static Handler http.fileHandler(String root,
Object mimes = {},
Boolean autoIndex = false);
Parámetros de chamada:
- root: Cadea, ruta raíz do ficheiro
- mimes: Obxecto, configuración de mímica estendida
- autoIndex: Booleano, se admite a exploración de ficheiros de directorio, o valor predeterminado é falso, non é compatible
Resultados de devolución:
- Handler, devolve un procesador de ficheiros estático para procesar mensaxes http
fileHandler admite a compresión previa de gzip. Cando a solicitude acepta a codificación gzip e o ficheiro filename.ext.gz existe no mesmo camiño, este ficheiro devolverase directamente, evitando así a carga do servidor causada pola compresión repetida.
setClientCert
Establecer o certificado de cliente predeterminado
1
2static http.setClientCert(X509Cert crt,
PKey key);
Parámetros de chamada:
- crt:X509Cert, certificado, usado para enviar ao servidor para verificar o cliente
- key:PKey, clave privada, usada para falar co cliente
request
Envía unha solicitude http ao obxecto de fluxo especificado e devolve o resultado
1
2static HttpResponse http.request(Stream conn,
HttpRequest req) async;
Parámetros de chamada:
- conn:Stream, especifica o obxecto de fluxo para xestionar a solicitude
- req:HttpRequest, para ser enviadoHttpRequestobxecto
Resultados de devolución:
- HttpResponse, devolve a resposta do servidor
Envía unha solicitude http ao obxecto de fluxo especificado e devolve o resultado
1
2
3static HttpResponse http.request(Stream conn,
HttpRequest req,
SeekableStream response_body) async;
Parámetros de chamada:
- conn:Stream, especifica o obxecto de fluxo para xestionar a solicitude
- req:HttpRequest, para ser enviadoHttpRequestobxecto
- response_body:SeekableStream, especifique o fluxo de resposta.body
Resultados de devolución:
- HttpResponse, devolve a resposta do servidor
solicitude especificadaurl, e devolve o resultado
1
2
3static HttpResponse http.request(String method,
String url,
Object opts = {}) async;
Parámetros de chamada:
- method: Cadena, especifique o método de solicitude http: GET, POST, etc.
- url: Cadena, especifiqueurl, debe ser o host completo que conténurl
- opts: Obxecto, especifique información adicional
Resultados de devolución:
- HttpResponse, devolve a resposta do servidor
opts contén opcións adicionais para a solicitude, admitidas como 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
}
Entre eles o corpo,json, o paquete non debe aparecer ao mesmo tempo. O valor predeterminado é {}, que non contén ningunha información adicional
Use o método GET para solicitar o especificadourl, e devolve o resultado, que é equivalente a request("GET", ...)
1
2static HttpResponse http.request(String url,
Object opts = {}) async;
Parámetros de chamada:
- url: Cadena, especifiqueurl, debe ser o host completo que conténurl
- opts: Obxecto, especifique información adicional
Resultados de devolución:
- HttpResponse, devolve a resposta do servidor
opts contén opcións adicionais para a solicitude, admitidas como 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": {}
}
Entre eles o corpo,json, o paquete non debe aparecer ao mesmo tempo. O valor predeterminado é {}, que non contén ningunha información adicional
Opcións de solicitude especificadasurl, e devolve o resultado
1static HttpResponse http.request(Object opts) async;
Parámetros de chamada:
- opts: Obxecto, especifique información adicional
Resultados de devolución:
- HttpResponse, devolve a resposta do servidor
opts contén opcións adicionais para a solicitude, admitidas como 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": {}
}
Entre eles o corpo,json, o paquete non debe aparecer ao mesmo tempo. O valor predeterminado é {}, que non contén ningunha información adicional
get
Use o método GET para solicitar o especificadourl, e devolve o resultado, que é equivalente a request("GET", ...)
1
2static HttpResponse http.get(String url,
Object opts = {}) async;
Parámetros de chamada:
- url: Cadena, especifiqueurl, debe ser o host completo que conténurl
- opts: Obxecto, especifique información adicional
Resultados de devolución:
- HttpResponse, devolve a resposta do servidor
opts contén opcións adicionais para a solicitude, admitidas como 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": {}
}
Entre eles o corpo,json, o paquete non debe aparecer ao mesmo tempo. O valor predeterminado é {}, que non contén ningunha información adicional
post
Use o método POST para solicitar o especificadourl, e devolve o resultado, que é equivalente a request("POST", ...)
1
2static HttpResponse http.post(String url,
Object opts = {}) async;
Parámetros de chamada:
- url: Cadena, especifiqueurl, debe ser o host completo que conténurl
- opts: Obxecto, especifique información adicional
Resultados de devolución:
- HttpResponse, devolve a resposta do servidor
opts contén opcións adicionais para a solicitude, admitidas como 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": {}
}
Entre eles o corpo,json, o paquete non debe aparecer ao mesmo tempo. O valor predeterminado é {}, que non contén ningunha información adicional
del
Use o método DELETE para solicitar o especificadourl, e devolve o resultado, que é equivalente a request("DELETE", ...)
1
2static HttpResponse http.del(String url,
Object opts = {}) async;
Parámetros de chamada:
- url: Cadena, especifiqueurl, debe ser o host completo que conténurl
- opts: Obxecto, especifique información adicional
Resultados de devolución:
- HttpResponse, devolve a resposta do servidor
opts contén opcións adicionais para a solicitude, admitidas como 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": {}
}
Entre eles o corpo,json, o paquete non debe aparecer ao mesmo tempo. O valor predeterminado é {}, que non contén ningunha información adicional
put
Use o método PUT para solicitar o especificadourl, e devolve o resultado, que é equivalente a request("PUT", ...)
1
2static HttpResponse http.put(String url,
Object opts = {}) async;
Parámetros de chamada:
- url: Cadena, especifiqueurl, debe ser o host completo que conténurl
- opts: Obxecto, especifique información adicional
Resultados de devolución:
- HttpResponse, devolve a resposta do servidor
opts contén opcións adicionais para a solicitude, admitidas como 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": {}
}
Entre eles o corpo,json, o paquete non debe aparecer ao mesmo tempo. O valor predeterminado é {}, que non contén ningunha información adicional
patch
Use o método PATCH para solicitar o especificadourl, e devolve o resultado, que é equivalente a request("PATCH", ...)
1
2static HttpResponse http.patch(String url,
Object opts = {}) async;
Parámetros de chamada:
- url: Cadena, especifiqueurl, debe ser o host completo que conténurl
- opts: Obxecto, especifique información adicional
Resultados de devolución:
- HttpResponse, devolve a resposta do servidor
opts contén opcións adicionais para a solicitude, admitidas como 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": {}
}
Entre eles o corpo,json, o paquete non debe aparecer ao mesmo tempo. O valor predeterminado é {}, que non contén ningunha información adicional
head
Use o método HEAD para solicitar o especificadourl, e devolve o resultado, que é equivalente a request("HEAD", ...)
1
2static HttpResponse http.head(String url,
Object opts = {}) async;
Parámetros de chamada:
- url: Cadena, especifiqueurl, debe ser o host completo que conténurl
- opts: Obxecto, especifique información adicional
Resultados de devolución:
- HttpResponse, devolve a resposta do servidor
opts contén opcións adicionais para a solicitude, admitidas como 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": {}
}
Entre eles o corpo,json, o paquete non debe aparecer ao mesmo tempo. O valor predeterminado é {}, que non contén ningunha información adicional
propiedades estáticas
STATUS_CODES
Object, devolve unha colección de códigos de estado de resposta HTTP estándar e as súas respectivas descricións curtas.
1static readonly Object http.STATUS_CODES;
cookies
NArray, devolve o cliente httpHttpCookielista de obxectos
1static readonly NArray http.cookies;
timeout
Número enteiro, consulta e establece o tempo de espera
1static Integer http.timeout;
enableCookie
Booleano, conmutador de función de cookie, activado por defecto
1static Boolean http.enableCookie;
autoRedirect
Booleano, cambio de función de redirección automática, activado de forma predeterminada
1static Boolean http.autoRedirect;
enableEncoding
Booleano, interruptor de función de descompresión automática, activado por defecto
1static Boolean http.enableEncoding;
maxHeadersCount
Número enteiro, consulta e establece o número máximo de cabeceiras de solicitude, o valor predeterminado é 128
1static Integer http.maxHeadersCount;
maxHeaderSize
Número enteiro, consulta e establece a lonxitude máxima da cabeceira da solicitude, o valor predeterminado é 8192
1static Integer http.maxHeaderSize;
maxBodySize
Enteiro, consulta e establece o tamaño máximo do corpo, en MB, o valor predeterminado é -1, sen límite de tamaño
1static Integer http.maxBodySize;
userAgent
Cadena, consulta e establece o identificador do navegador na solicitude http
1static String http.userAgent;
poolSize
Número enteiro, consulta e establece o número máximo de conexións de caché de mantemento activo, por defecto 128
1static Integer http.poolSize;
poolTimeout
Número enteiro, consulta e establece o tempo de espera da conexión da caché de mantemento, por defecto 10000 ms
1static Integer http.poolTimeout;
http_proxy
Cadena, consulta e establece o proxy de solicitude http, admite o proxy http/https/socks5
1static String http.http_proxy;
https_proxy
Cadea, consulta e establece o proxy de solicitude https, admite o proxy http/https/socks5, se non está definido ou está baleiro, reutilizarase http_proxy
1static String http.https_proxy;