HttpClient
HttpClient
创建对象
一个HttpClient对象表示一个http客户端
import {HttpClient} from "http";
let config = {
baseUrl: "http://192.168.110.118:8999",//将自动加在url前面,除非url是一个绝对URL,默认:空
timeout: 5000, //超时时间,单位:毫秒
header: {
"Content-Type": "application/json" //默认header头
}
};
let client = new HttpClient(config);
属性与方法
方法 | 类型 | 参数 | 返回值 | 说明 |
---|---|---|---|---|
request | 方法 | config:object | response | 发起http请求 |
request
语法
client.request(config);
发起http请求
let res = client.request({
url: '/test',//请求url (必选)
method: 'POST', //请求方法 (可选, 默认为GET)
timeout: 3000, // 超时时间,单位:毫秒;该配置会覆盖client初始化时的timeout配置
body: {name: "xx"}, //请求体,(可选),只有post请求支持
header: { //请求header,(可选)
"Content-Type": "application/json"
}
});
//响应结果
console.log(res);
返回结果
响应结果为一个object,包含3个参数:
// 结果为
{
// 响应状态码
status: 200,
// 所有响应头
header: {
"Content-Type": " text/html"
},
// 返回值类型取决于responseType配置。
body: any
}
请求案例
1. application/json
发送multipart/form-data类型的请求进行文件上传。
let res = client.request({
url: '/test',
method: 'POST',
body: {
name: "xx",
age: 21
},
header: {
"Content-Type": "application/json"
}
});
//响应结果
console.log(res);
2. multipart/form-data
发送application/x-www-form-urlencoded类型的请求。
import {fs} from "core";
let res = client.request({
url: '/test',
method: 'POST',
body: {
"file1": fs.openFile("/Users/xx/Desktop/xx.txt"),//读取文件
"name1": "hello" //可以带一个字符串参数
},
header: {
"Content-Type": "multipart/form-data"
}
});
//响应结果
console.log(res);
3. application/x-www-form-urlencoded
发送application/x-www-form-urlencoded类型的请求进行文件上传。
let res = client.request({
url: '/test',
method: 'POST',
body: {
name: "xx",
age: 21
},
header: {
"Content-Type": "application/x-www-form-urlencoded"
}
});
//响应结果
console.log(res);
响应案例
1. application/json
当响应的Content-Type为application/json时,body类型为一个js对象
{
status: 200,
header: {
"Content-Type": "application/json"
},
body: {
name: "xx",
age: 10
}
}
2. text类型
当响应的Content-Type中包含text时,body类型为一个string类型
{
status: 200,
header: {
"Content-Type": "text/html"
},
body: "xxxx"
}