ObjectHttpClient
HttpClient és una biblioteca de classes dissenyada per a funcions de client HTTP, que proporciona sol·licituds bàsiques HTTP/HTTPS, accés al servidor intermediari, gestió de galetes i altres funcions.
L'ús de HttpClient pot accedir i manipular fàcilment pàgines web, aquí teniu un exemple senzill: imprimiu el seu codi font 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 aquest exemple, importa mitjançant requirehttpmòdul i, a continuació, utilitzeuhttp.getInicieu una sol·licitud d'obtenció, onurlEl paràmetre especifica l'URL sol·licitat. perquèhttp.getEl mètode retorna aHttpResponseObjecte, de manera que podeu accedir al contingut del cos retornat per la sol·licitud mitjançant la seva propietat body i convertir-lo en una cadena mitjançant el mètode toString.
quan se sol·licitiurlés de tipus https en lloc dehttpescriviu, el codi només ha de posar elhttpNomés has de canviar a https:
1
2
3
4
5const http = require('http');
const res = http.get('https://www.example.com/');
console.log(res.body.readAll().toString());
A més, hi ha exemples d'iniciar directament sol·licituds POST i configurar User-Agent mitjançant 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 aquest exemple, primer creeu un objecte HttpClient httpClient i configureu el seu userAgent com a User-Agent del navegador. A continuació, utilitzeu el seu mètode de publicació per iniciar una sol·licitud de publicació, on els paràmetres nom i versió especifiquen el contingut principal de la sol·licitud. Finalment, emet el contingut del cos del valor de retorn.
relació hereditària
Constructor
HttpClient
Constructor HttpClient, creeu un nou objecte HttpClient
1new HttpClient();
atribut de membre
cookies
NArray, tornahttpdel clientHttpCookiellista d'objectes
1readonly NArray HttpClient.cookies;
timeout
Nombre enter, consulta i estableix el temps d'espera en mil·lisegons
1Integer HttpClient.timeout;
enableCookie
Booleà, commutador de funció de galetes, activat per defecte
1Boolean HttpClient.enableCookie;
autoRedirect
Commutador booleà de funció de redirecció automàtica, activat per defecte
1Boolean HttpClient.autoRedirect;
enableEncoding
Commutador booleà de funció de descompressió automàtica, activat per defecte
1Boolean HttpClient.enableEncoding;
maxBodySize
Enter, consulta i estableix la mida màxima del cos, en MB, el valor per defecte és -1, sense límit de mida
1Integer HttpClient.maxBodySize;
userAgent
Cadena, consultes i configuracióhttpL'identificador del navegador a la sol·licitud
1String HttpClient.userAgent;
poolSize
Enter, consulteu i estableixi el nombre màxim de connexions de memòria cau per mantenir-lo, el valor predeterminat és 128
1Integer HttpClient.poolSize;
poolTimeout
Enter, consulteu i estableixi el temps d'espera de connexió de la memòria cau de manteniment, per defecte 10.000 ms
1Integer HttpClient.poolTimeout;
http_proxy
Cadena, consultes i configuracióhttpsol·licitar agent, suporthttp/https/proxy socks5
1String HttpClient.http_proxy;
https_proxy
Cadena, consulta i configura el proxy de sol·licitud https, suporthttp/https/socks5 proxy, si no s'estableix o s'estableix en buit, reutilitza http_proxy
1String HttpClient.https_proxy;
sslVerification
Enter, consulteu i configureu el mode de verificació del certificat quan us connecteu a https, consulteusslLes constants VERIFY_* del mòdul, el valor per defecte ésssl.verification
1Integer HttpClient.sslVerification;
funció de membre
setClientCert
Estableix el certificat de client predeterminat
1
2HttpClient.setClientCert(X509Cert crt,
PKey key);
Paràmetres de trucada:
- crt:X509Cert, el certificat utilitzat per enviar al servidor per autenticar el client
- key:PKey, la clau privada utilitzada per parlar amb el client
request
enviarhttpSol·liciteu l'objecte de flux especificat i retorneu el resultat
1
2HttpResponse HttpClient.request(Stream conn,
HttpRequest req) async;
Paràmetres de trucada:
- conn:Stream, especifica l'objecte de flux que gestiona la sol·licitud
- req:HttpRequest, enviarHttpRequestobjecte
resultat de retorn:
- HttpResponse, retorna la resposta del servidor
enviarhttpSol·liciteu l'objecte de flux especificat i retorneu el resultat
1
2
3HttpResponse HttpClient.request(Stream conn,
HttpRequest req,
SeekableStream response_body) async;
Paràmetres de trucada:
- conn:Stream, especifica l'objecte de flux que gestiona la sol·licitud
- req:HttpRequest, enviarHttpRequestobjecte
- response_body:SeekableStream, especifica el flux de response.body
resultat de retorn:
- HttpResponse, retorna la resposta del servidor
demanat especificarurl, i retorna el resultat
1
2
3HttpResponse HttpClient.request(String method,
String url,
Object opts = {}) async;
Paràmetres de trucada:
- method: Cadena, especificadahttpMètode de sol·licitud: GET, POST, etc.
- url: Cadena, especificadaurl, que ha de ser un completurl
- opts: Objecte, especifica informació addicional
resultat de retorn:
- HttpResponse, retorna la resposta del servidor
opts conté opcions addicionals per a la sol·licitud, el contingut compatible és el següent:
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
}
on el cos,json, el paquet no ha d'aparèixer al mateix temps. El valor predeterminat és {}, no conté cap informació addicional
Utilitzeu el mètode GET per sol·licitar l'especificaturl, i retorna el resultat, que és equivalent a request("GET", ...)
1
2HttpResponse HttpClient.request(String url,
Object opts = {}) async;
Paràmetres de trucada:
- url: Cadena, especificadaurl, que ha de ser un completurl
- opts: Objecte, especifica informació addicional
resultat de retorn:
- HttpResponse, retorna la resposta del servidor
opts conté opcions addicionals per a la sol·licitud, el contingut compatible és el següent:
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": {}
}
on el cos,json, el paquet no ha d'aparèixer al mateix temps. El valor predeterminat és {}, no conté cap informació addicional
les opcions de sol·licitud especificadesurl, i retorna el resultat
1HttpResponse HttpClient.request(Object opts) async;
Paràmetres de trucada:
- opts: Objecte, especifica informació addicional
resultat de retorn:
- HttpResponse, retorna la resposta del servidor
opts conté opcions addicionals per a la sol·licitud, el contingut compatible és el següent:
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": {}
}
on el cos,json, el paquet no ha d'aparèixer al mateix temps. El valor predeterminat és {}, no conté cap informació addicional
get
Utilitzeu el mètode GET per sol·licitar l'especificaturl, i retorna el resultat, que és equivalent a request("GET", ...)
1
2HttpResponse HttpClient.get(String url,
Object opts = {}) async;
Paràmetres de trucada:
- url: Cadena, especificadaurl, que ha de ser un completurl
- opts: Objecte, especifica informació addicional
resultat de retorn:
- HttpResponse, retorna la resposta del servidor
opts conté opcions addicionals per a la sol·licitud, el contingut compatible és el següent:
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": {}
}
on el cos,json, el paquet no ha d'aparèixer al mateix temps. El valor predeterminat és {}, no conté cap informació addicional
post
Utilitzeu el mètode POST per sol·licitar l'especificaturl, i retorna el resultat, que és equivalent a request("POST", ...)
1
2HttpResponse HttpClient.post(String url,
Object opts = {}) async;
Paràmetres de trucada:
- url: Cadena, especificadaurl, que ha de ser un completurl
- opts: Objecte, especifica informació addicional
resultat de retorn:
- HttpResponse, retorna la resposta del servidor
opts conté opcions addicionals per a la sol·licitud, el contingut compatible és el següent:
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": {}
}
on el cos,json, el paquet no ha d'aparèixer al mateix temps. El valor predeterminat és {}, no conté cap informació addicional
del
Utilitzeu el mètode DELETE per sol·licitar l'especificaturl, i retorna el resultat, que és equivalent a request("DELETE", ...)
1
2HttpResponse HttpClient.del(String url,
Object opts = {}) async;
Paràmetres de trucada:
- url: Cadena, especificadaurl, que ha de ser un completurl
- opts: Objecte, especifica informació addicional
resultat de retorn:
- HttpResponse, retorna la resposta del servidor
opts conté opcions addicionals per a la sol·licitud, el contingut compatible és el següent:
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": {}
}
on el cos,json, el paquet no ha d'aparèixer al mateix temps. El valor predeterminat és {}, no conté cap informació addicional
put
Utilitzeu el mètode PUT per sol·licitar l'especificaturl, i retorna el resultat, que és equivalent a request("PUT", ...)
1
2HttpResponse HttpClient.put(String url,
Object opts = {}) async;
Paràmetres de trucada:
- url: Cadena, especificadaurl, que ha de ser un completurl
- opts: Objecte, especifica informació addicional
resultat de retorn:
- HttpResponse, retorna la resposta del servidor
opts conté opcions addicionals per a la sol·licitud, el contingut compatible és el següent:
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": {}
}
on el cos,json, el paquet no ha d'aparèixer al mateix temps. El valor predeterminat és {}, no conté cap informació addicional
patch
Utilitzeu el mètode PATCH per sol·licitar l'especificaturl, i retorna el resultat, que és equivalent a request("PATCH", ...)
1
2HttpResponse HttpClient.patch(String url,
Object opts = {}) async;
Paràmetres de trucada:
- url: Cadena, especificadaurl, que ha de ser un completurl
- opts: Objecte, especifica informació addicional
resultat de retorn:
- HttpResponse, retorna la resposta del servidor
opts conté opcions addicionals per a la sol·licitud, el contingut compatible és el següent:
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": {}
}
on el cos,json, el paquet no ha d'aparèixer al mateix temps. El valor predeterminat és {}, no conté cap informació addicional
head
Utilitzeu el mètode HEAD per sol·licitar l'especificaturl, i retorna el resultat, que és equivalent a request("PATCH", ...)
1
2HttpResponse HttpClient.head(String url,
Object opts = {}) async;
Paràmetres de trucada:
- url: Cadena, especificadaurl, que ha de ser un completurl
- opts: Objecte, especifica informació addicional
resultat de retorn:
- HttpResponse, retorna la resposta del servidor
opts conté opcions addicionals per a la sol·licitud, el contingut compatible és el següent:
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": {}
}
on el cos,json, el paquet no ha d'aparèixer al mateix temps. El valor predeterminat és {}, no conté cap informació addicional
toString
Retorna la representació de cadena de l'objecte, generalment retorna "[Native Object]", l'objecte es pot reimplementar segons les seves pròpies característiques
1String HttpClient.toString();
resultat de retorn:
- String, retorna una representació de cadena de l'objecte
toJSON
Retorna la representació en format JSON de l'objecte, generalment retorna una col·lecció de propietats llegibles definides per l'objecte
1Value HttpClient.toJSON(String key = "");
Paràmetres de trucada:
- key: Corda, no utilitzada
resultat de retorn:
- Value, que retorna un valor serialitzable per JSON