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:objectresponse发起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"
}
更新时间 9/29/2024, 7:47:47 PM