Módulo módulo básico

módulo http

El módulo http encapsula el procesamiento de solicitudes y respuestas HTTP, lo que nos permite crear fácilmente un servidor http o simular un cliente para iniciar una solicitud http. Con el módulo http, los desarrolladores pueden escribir y procesar fácilmente código relacionado con el protocolo HTTP.

El siguiente es un ejemplo sencillo para crear un servidor web y devolver una respuesta de hola mundo:

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();

En este ejemplo, presentamos el módulo http, luego definimos un objeto de servidor http y lo vinculamos al número de puerto local 8080. Cuando se envía una solicitud a este número de puerto, la respuesta se establecerá en la cadena "¡Hola mundo!".

Al mismo tiempo, el módulo http también contiene objetos de cliente,http.ClientSimule el entorno del navegador para almacenar en caché las cookies y almacenarlas durante la visita.urlAl llevar la cookie correspondiente al objeto cliente http. puedes usarlohttp.ClientAcceda a solicitudes de interfaz http, realice descargas http y una serie de operaciones relacionadas con http. A continuación eshttp.ClientEjemplos de aplicación:

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

En el ejemplo anterior, unhttp.Clientobjeto y luego llama getal método para iniciar una solicitud http GET a fibjs.org.

además,http.ClientHay algunas otras propiedades y métodos que se pueden llamar, como cookiesetc.

El módulo https es un alias del módulo http. require('https')También puede utilizar el módulo http.

objeto

Request

Cree un objeto de solicitud http, consulteHttpRequest

1
HttpRequest http.Request;

Response

Cree un objeto de respuesta http, consulteHttpResponse

1
HttpResponse http.Response;

Cree un objeto de cookie http, consulteHttpCookie

1
HttpCookie http.Cookie;

Server

Cree un servidor http, consulteHttpServer

1
HttpServer http.Server;

Client

Cree un cliente http, consulteHttpClient

1
HttpClient http.Client;

HttpsServer

Cree un servidor https, consulteHttpsServer

1
HttpsServer http.HttpsServer;

Handler

Cree un objeto de controlador de protocolo http, consulteHttpHandler

1
HttpHandler http.Handler;

Repeater

Cree un objeto de controlador de reenvío de solicitudes http, consulteHttpRepeater

1
HttpRepeater http.Repeater;

función estática

fileHandler

Cree un procesador de archivos estáticos http para responder a mensajes http con archivos estáticos

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

Parámetros de llamada:

  • root: Cadena, ruta raíz del archivo
  • mimes: Objeto, configuración mime extendida
  • autoIndex: Booleano, si se admite la exploración de archivos de directorio, el valor predeterminado es falso, no se admite

Resultados de devolución:

  • Handler, devuelve un procesador de archivos estático para procesar mensajes http

fileHandler admite la precompresión gzip. Cuando la solicitud acepta la codificación gzip y el archivo filename.ext.gz existe en la misma ruta, este archivo se devolverá directamente, evitando así la carga del servidor causada por la compresión repetida.


setClientCert

Establecer certificado de cliente predeterminado

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

Parámetros de llamada:

  • crt:X509Cert, certificado, utilizado para enviar al servidor para verificar al cliente
  • key:PKey, clave privada, utilizada para hablar con el cliente.

request

Envíe una solicitud http al objeto de flujo especificado y devuelva el resultado

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

Parámetros de llamada:

Resultados de devolución:


Envíe una solicitud http al objeto de flujo especificado y devuelva el resultado

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

Parámetros de llamada:

Resultados de devolución:


solicitud especificadaurly devolver el resultado

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

Parámetros de llamada:

  • method: Cadena, especifique el método de solicitud http: GET, POST, etc.
  • url: Cadena, especifiqueurl, debe ser el host contenedor completourl
  • opts: Objeto, especifique información adicional

Resultados de devolución:

opts contiene opciones adicionales para la solicitud, respaldadas de la siguiente manera:

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 ellos cuerpo,json, el paquete no debe aparecer al mismo tiempo. El valor predeterminado es {}, que no contiene ninguna información adicional.


Utilice el método GET para solicitar lo especificadourly devuelve el resultado, que equivale a request("GET", ...)

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

Parámetros de llamada:

  • url: Cadena, especifiqueurl, debe ser el host contenedor completourl
  • opts: Objeto, especifique información adicional

Resultados de devolución:

opts contiene opciones adicionales para la solicitud, respaldadas de la siguiente manera:

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 ellos cuerpo,json, el paquete no debe aparecer al mismo tiempo. El valor predeterminado es {}, que no contiene ninguna información adicional.


Opciones de solicitud especificadasurly devolver el resultado

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

Parámetros de llamada:

  • opts: Objeto, especifique información adicional

Resultados de devolución:

opts contiene opciones adicionales para la solicitud, respaldadas de la siguiente manera:

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 ellos cuerpo,json, el paquete no debe aparecer al mismo tiempo. El valor predeterminado es {}, que no contiene ninguna información adicional.


get

Utilice el método GET para solicitar lo especificadourly devuelve el resultado, que equivale a request("GET", ...)

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

Parámetros de llamada:

  • url: Cadena, especifiqueurl, debe ser el host contenedor completourl
  • opts: Objeto, especifique información adicional

Resultados de devolución:

opts contiene opciones adicionales para la solicitud, respaldadas de la siguiente manera:

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 ellos cuerpo,json, el paquete no debe aparecer al mismo tiempo. El valor predeterminado es {}, que no contiene ninguna información adicional.


post

Utilice el método POST para solicitar lo especificadourly devuelve el resultado, que equivale a request("POST", ...)

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

Parámetros de llamada:

  • url: Cadena, especifiqueurl, debe ser el host contenedor completourl
  • opts: Objeto, especifique información adicional

Resultados de devolución:

opts contiene opciones adicionales para la solicitud, respaldadas de la siguiente manera:

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 ellos cuerpo,json, el paquete no debe aparecer al mismo tiempo. El valor predeterminado es {}, que no contiene ninguna información adicional.


del

Utilice el método DELETE para solicitar lo especificado.urly devuelve el resultado, que equivale a request("DELETE", ...)

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

Parámetros de llamada:

  • url: Cadena, especifiqueurl, debe ser el host contenedor completourl
  • opts: Objeto, especifique información adicional

Resultados de devolución:

opts contiene opciones adicionales para la solicitud, respaldadas de la siguiente manera:

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 ellos cuerpo,json, el paquete no debe aparecer al mismo tiempo. El valor predeterminado es {}, que no contiene ninguna información adicional.


put

Utilice el método PUT para solicitar lo especificado.urly devuelve el resultado, que equivale a request("PUT", ...)

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

Parámetros de llamada:

  • url: Cadena, especifiqueurl, debe ser el host contenedor completourl
  • opts: Objeto, especifique información adicional

Resultados de devolución:

opts contiene opciones adicionales para la solicitud, respaldadas de la siguiente manera:

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 ellos cuerpo,json, el paquete no debe aparecer al mismo tiempo. El valor predeterminado es {}, que no contiene ninguna información adicional.


patch

Utilice el método PATCH para solicitar lo especificadourly devuelve el resultado, que es equivalente a request("PATCH", ...)

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

Parámetros de llamada:

  • url: Cadena, especifiqueurl, debe ser el host contenedor completourl
  • opts: Objeto, especifique información adicional

Resultados de devolución:

opts contiene opciones adicionales para la solicitud, respaldadas de la siguiente manera:

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 ellos cuerpo,json, el paquete no debe aparecer al mismo tiempo. El valor predeterminado es {}, que no contiene ninguna información adicional.


Utilice el método HEAD para solicitar lo especificadourly devuelve el resultado, que equivale a request("HEAD", ...)

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

Parámetros de llamada:

  • url: Cadena, especifiqueurl, debe ser el host contenedor completourl
  • opts: Objeto, especifique información adicional

Resultados de devolución:

opts contiene opciones adicionales para la solicitud, respaldadas de la siguiente manera:

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 ellos cuerpo,json, el paquete no debe aparecer al mismo tiempo. El valor predeterminado es {}, que no contiene ninguna información adicional.

propiedades estáticas

STATUS_CODES

Objeto, devuelve una colección de códigos de estado de respuesta HTTP estándar y sus respectivas descripciones breves.

1
static readonly Object http.STATUS_CODES;

cookies

NArray, devuelve el cliente httpHttpCookielista de objetos

1
static readonly NArray http.cookies;

timeout

Entero, consulta y tiempo de espera establecido

1
static Integer http.timeout;

enableCookie

Booleano, cambio de función de cookies, habilitado de forma predeterminada

1
static Boolean http.enableCookie;

autoRedirect

Booleano, cambio de función de redireccionamiento automático, habilitado de forma predeterminada

1
static Boolean http.autoRedirect;

enableEncoding

Booleano, interruptor de función de descompresión automática, habilitado de forma predeterminada

1
static Boolean http.enableEncoding;

maxHeadersCount

Entero, consulta y establece el número máximo de encabezados de solicitud, el valor predeterminado es 128

1
static Integer http.maxHeadersCount;

maxHeaderSize

Entero, consulta y establece la longitud máxima del encabezado de solicitud, el valor predeterminado es 8192

1
static Integer http.maxHeaderSize;

maxBodySize

Entero, consulta y establece el tamaño máximo del cuerpo, en MB, el valor predeterminado es -1, sin límite de tamaño

1
static Integer http.maxBodySize;

userAgent

Cadena, consulta y establece el identificador del navegador en la solicitud http

1
static String http.userAgent;

poolSize

Entero, consulta y establece el número máximo de conexiones de caché keep-alive, predeterminado 128

1
static Integer http.poolSize;

poolTimeout

Entero, consulta y establece el tiempo de espera de la conexión de caché de mantenimiento, predeterminado 10000 ms

1
static Integer http.poolTimeout;

http_proxy

Cadena, consulta y configuración del proxy de solicitud http, admite proxy http/https/socks5

1
static String http.http_proxy;

https_proxy

Encadene, consulte y configure el proxy de solicitud https, admita el proxy http/https/socks5; si no está configurado o está vacío, se reutilizará http_proxy

1
static String http.https_proxy;