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
7const 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
4var http = require('http');
var httpClient = new http.Client();
httpClient.get('http://fibjs.org');
En el ejemplo anterior, unhttp.Clientobjeto y luego llama get
al 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 cookies
etc.
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
1HttpRequest http.Request;
Response
Cree un objeto de respuesta http, consulteHttpResponse
1HttpResponse http.Response;
Cookie
Cree un objeto de 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 objeto de controlador de protocolo http, consulteHttpHandler
1HttpHandler http.Handler;
Repeater
Cree un objeto de controlador de reenvío de solicitudes http, consulteHttpRepeater
1HttpRepeater 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
3static 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
2static 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
2static HttpResponse http.request(Stream conn,
HttpRequest req) async;
Parámetros de llamada:
- conn:Stream, especifica el objeto de flujo para manejar la solicitud
- req:HttpRequest, para ser enviadoHttpRequestobjeto
Resultados de devolución:
- HttpResponse, devuelve la respuesta del servidor
Envíe una solicitud http al objeto de flujo especificado y devuelva el resultado
1
2
3static HttpResponse http.request(Stream conn,
HttpRequest req,
SeekableStream response_body) async;
Parámetros de llamada:
- conn:Stream, especifica el objeto de flujo para manejar la solicitud
- req:HttpRequest, para ser enviadoHttpRequestobjeto
- response_body:SeekableStream, especifique el flujo de respuesta.body
Resultados de devolución:
- HttpResponse, devuelve la respuesta del servidor
solicitud especificadaurly devolver el resultado
1
2
3static 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:
- HttpResponse, devuelve la respuesta del servidor
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
2static 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:
- HttpResponse, devuelve la respuesta del servidor
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
1static HttpResponse http.request(Object opts) async;
Parámetros de llamada:
- opts: Objeto, especifique información adicional
Resultados de devolución:
- HttpResponse, devuelve la respuesta del servidor
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
2static 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:
- HttpResponse, devuelve la respuesta del servidor
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
2static 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:
- HttpResponse, devuelve la respuesta del servidor
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
2static 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:
- HttpResponse, devuelve la respuesta del servidor
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
2static 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:
- HttpResponse, devuelve la respuesta del servidor
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
2static 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:
- HttpResponse, devuelve la respuesta del servidor
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.
head
Utilice el método HEAD para solicitar lo especificadourly devuelve el resultado, que equivale a request("HEAD", ...)
1
2static 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:
- HttpResponse, devuelve la respuesta del servidor
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.
1static readonly Object http.STATUS_CODES;
cookies
NArray, devuelve el cliente httpHttpCookielista de objetos
1static readonly NArray http.cookies;
timeout
Entero, consulta y tiempo de espera establecido
1static Integer http.timeout;
enableCookie
Booleano, cambio de función de cookies, habilitado de forma predeterminada
1static Boolean http.enableCookie;
autoRedirect
Booleano, cambio de función de redireccionamiento automático, habilitado de forma predeterminada
1static Boolean http.autoRedirect;
enableEncoding
Booleano, interruptor de función de descompresión automática, habilitado de forma predeterminada
1static Boolean http.enableEncoding;
maxHeadersCount
Entero, consulta y establece el número máximo de encabezados de solicitud, el valor predeterminado es 128
1static Integer http.maxHeadersCount;
maxHeaderSize
Entero, consulta y establece la longitud máxima del encabezado de solicitud, el valor predeterminado es 8192
1static 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
1static Integer http.maxBodySize;
userAgent
Cadena, consulta y establece el identificador del navegador en la solicitud http
1static String http.userAgent;
poolSize
Entero, consulta y establece el número máximo de conexiones de caché keep-alive, predeterminado 128
1static Integer http.poolSize;
poolTimeout
Entero, consulta y establece el tiempo de espera de la conexión de caché de mantenimiento, predeterminado 10000 ms
1static Integer http.poolTimeout;
http_proxy
Cadena, consulta y configuración del proxy de solicitud http, admite proxy http/https/socks5
1static 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
1static String http.https_proxy;