ObjetoHttpClient
HttpClient es una biblioteca de clases diseñada para funciones de cliente HTTP, que proporciona solicitudes HTTP/HTTPS básicas, acceso proxy, administración de cookies y otras funciones.
Puede acceder y operar páginas web fácilmente usando HttpClient. Aquí hay un ejemplo simple: imprimir el código fuente en una página web:
1
2
3
4
5const http = require('http');
const res = http.get('http://www.example.com/');
console.log(res.body.readAll().toString());
En este ejemplo, introducido a través de requirehttpmódulo y luego usarhttp.getIniciar una solicitud de obtención, dondeurlEl parámetro especifica la URL solicitada. porquehttp.getEl método devuelve unHttpResponseObjeto, para que pueda acceder al contenido del cuerpo devuelto por la solicitud a través de su propiedad del cuerpo y convertirlo en una cadena a través del método toString.
cuando se solicitaurlEs tipo https en lugar dehttptipo, el código sólo necesita cambiarhttpSimplemente cámbielo a https:
1
2
3
4
5const http = require('http');
const res = http.get('https://www.example.com/');
console.log(res.body.readAll().toString());
Además, hay ejemplos de cómo iniciar directamente solicitudes POST y configurar User-Agent a través de HttpClient:
1
2
3
4
5
6
7
8
9
10
11const http = require('http');
const httpClient = new http.Client();
httpClient.userAgent = 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36';
const res = httpClient.post('http://www.example.com/post', {
json: {
name: 'fibjs',
version: '0.31.0'
}
});
console.log(res.body.readAll().toString());
En este ejemplo, primero se crea un objeto HttpClient httpClient y su userAgent se establece en el User-Agent del navegador. Luego inicie una solicitud de publicación a través de su método de publicación, en el que los parámetros nombre y versión especifican el contenido principal de la solicitud. Finalmente, se genera el contenido principal del valor de retorno.
relación de herencia
Constructor
HttpClient
Constructor HttpClient, crea un nuevo objeto HttpClient
1new HttpClient();
propiedades de miembros
cookies
NArray, regresarhttpclienteHttpCookielista de objetos
1readonly NArray HttpClient.cookies;
timeout
Entero, consulta y configuración de unidades de tiempo de espera en milisegundos
1Integer HttpClient.timeout;
enableCookie
Booleano, cambio de función de cookies, habilitado de forma predeterminada
1Boolean HttpClient.enableCookie;
autoRedirect
Booleano, cambio de función de redireccionamiento automático, habilitado de forma predeterminada
1Boolean HttpClient.autoRedirect;
enableEncoding
Booleano, interruptor de función de descompresión automática, habilitado de forma predeterminada
1Boolean HttpClient.enableEncoding;
maxHeadersCount
Entero, consulta y establece el número máximo de encabezados de solicitud, el valor predeterminado es 128
1Integer HttpClient.maxHeadersCount;
maxHeaderSize
Entero, consulta y establece la longitud máxima del encabezado de solicitud, el valor predeterminado es 8192
1Integer HttpClient.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
1Integer HttpClient.maxBodySize;
userAgent
Cadena, consulta y configuración.httpEl identificador del navegador en la solicitud.
1String HttpClient.userAgent;
poolSize
Entero, consulta y establece el número máximo de conexiones de caché keep-alive, predeterminado 128
1Integer HttpClient.poolSize;
poolTimeout
Entero, consulta y establece el tiempo de espera de la conexión de caché de mantenimiento, predeterminado 10000 ms
1Integer HttpClient.poolTimeout;
http_proxy
Cadena, consulta y configuración.httpSolicitar agente, soportehttp/https/socks5 proxy
1String HttpClient.http_proxy;
https_proxy
Cadena, consulta y configuración de proxy de solicitud https, soportehttp/https/socks5 proxy, si no está configurado o está vacío, se reutilizará http_proxy.
1String HttpClient.https_proxy;
sslVerification
Entero, consulta y configura el modo de verificación del certificado al conectarse a https, referenciasslVERIFY_* constantes del módulo, el valor predeterminado esssl.verification
1Integer HttpClient.sslVerification;
función miembro
setClientCert
Establecer certificado de cliente predeterminado
1
2HttpClient.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
enviarhttpSolicite el objeto de flujo especificado y devuelva el resultado
1
2HttpResponse HttpClient.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
enviarhttpSolicite el objeto de flujo especificado y devuelva el resultado
1
2
3HttpResponse HttpClient.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
3HttpResponse HttpClient.request(String method,
String url,
Object opts = {}) async;
Parámetros de llamada:
- method: Cadena, especifiquehttpMétodo de solicitud: OBTENER, 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 the 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
2HttpResponse HttpClient.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
1HttpResponse HttpClient.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
2HttpResponse HttpClient.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
2HttpResponse HttpClient.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
2HttpResponse HttpClient.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
2HttpResponse HttpClient.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
2HttpResponse HttpClient.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 es equivalente a request("PATCH", ...)
1
2HttpResponse HttpClient.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.
toString
Devuelve la representación de cadena del objeto. Generalmente, se devuelve "[Objeto nativo]". El objeto se puede volver a implementar de acuerdo con sus propias características.
1String HttpClient.toString();
Resultados de devolución:
- String, devuelve la representación de cadena del objeto
toJSON
Devuelve una representación en formato JSON del objeto, que generalmente devuelve una colección de propiedades legibles definidas por el objeto.
1Value HttpClient.toJSON(String key = "");
Parámetros de llamada:
- key: Cadena, no utilizada
Resultados de devolución:
- Value, devuelve un valor que contiene JSON serializable