Módulo módulo básico

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 7
const 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 4
var http = require('http'); var httpClient = new http.Client(); httpClient.get('http://fibjs.org');

No exemplo anterior, ahttp.Clientobxecto e, a continuación, chama getao 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 cookiesetc.

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

1
HttpRequest http.Request;

Response

Cree un obxecto de resposta http, consulteHttpResponse

1
HttpResponse http.Response;

Cree un obxecto 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 obxecto controlador de protocolo http, consulteHttpHandler

1
HttpHandler http.Handler;

Repeater

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

1
HttpRepeater 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 3
static 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 2
static 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 2
static HttpResponse http.request(Stream conn, HttpRequest req) async;

Parámetros de chamada:

Resultados de devolución:


Envía unha solicitude http ao obxecto de fluxo especificado e devolve o resultado

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

Parámetros de chamada:

Resultados de devolución:


solicitude especificadaurl, e devolve o resultado

1 2 3
static 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:

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 2
static 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:

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

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

Parámetros de chamada:

  • opts: Obxecto, especifique información adicional

Resultados de devolución:

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 2
static 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:

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 2
static 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:

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 2
static 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:

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 2
static 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:

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 2
static 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:

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


Use o método HEAD para solicitar o especificadourl, e devolve o resultado, que é equivalente a request("HEAD", ...)

1 2
static 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:

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.

1
static readonly Object http.STATUS_CODES;

cookies

NArray, devolve o cliente httpHttpCookielista de obxectos

1
static readonly NArray http.cookies;

timeout

Número enteiro, consulta e establece o tempo de espera

1
static Integer http.timeout;

enableCookie

Booleano, conmutador de función de cookie, activado por defecto

1
static Boolean http.enableCookie;

autoRedirect

Booleano, cambio de función de redirección automática, activado de forma predeterminada

1
static Boolean http.autoRedirect;

enableEncoding

Booleano, interruptor de función de descompresión automática, activado por defecto

1
static Boolean http.enableEncoding;

maxHeadersCount

Número enteiro, consulta e establece o número máximo de cabeceiras de solicitude, o valor predeterminado é 128

1
static Integer http.maxHeadersCount;

maxHeaderSize

Número enteiro, consulta e establece a lonxitude máxima da cabeceira da solicitude, o valor predeterminado é 8192

1
static 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

1
static Integer http.maxBodySize;

userAgent

Cadena, consulta e establece o identificador do navegador na solicitude http

1
static 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

1
static 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

1
static Integer http.poolTimeout;

http_proxy

Cadena, consulta e establece o proxy de solicitude http, admite o proxy http/https/socks5

1
static 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

1
static String http.https_proxy;