注意:网络请求在 previewer预览 中 不可用,要在 模拟器 或 真机设备 使用
POST请求介绍
HTTP 中的 POST 请求是另一种常用的请求方法,主要用于 向服务器 提交 数据,如:表单提交(注册、登录、提交个人信息)、创建资源、发送复杂数据
特点
- 数据传递方式:数据放在请求体(Body)中传递,不会显示在 URL 里,格式更灵活(可支持 JSON、表单、文件等)。
- 数据长度限制:理论上没有严格的数据大小限制(实际受服务器配置影响),适合传递大量或复杂数据。
- 安全性:数据不在 URL 中暴露,相对 GET 更安全(但仍需通过 HTTPS 加密来保障传输安全)。
适用场景:
- 用户登录、注册(提交账号密码)
- 提交表单数据(如发布文章、填写问卷)
- 上传文件、图片等二进制数据
- 调用创建/修改类 API(如新增用户、更新信息)
发送 POST 请求
定义
post(url: URLOrString, content?: RequestContent, destination?: ResponseBodyDestination): Promise<Response>
参数:
url:
URLOrString类型,必填,URL网址content:
RequestContent类型,非必填,请求的正文部分的内容。默认为undefined。destination:
ResponseBodyDestination,非必填,HTTP响应的目标位置或目的地。
例子
创建测试 api
在 https://mock.presstime.cn/ 创建工程、url,定义返回数据:
{
"code": 0,
"msg": "登录成功"
}
代码
import { rcp } from '@kit.RemoteCommunicationKit';
import { BusinessError } from '@kit.BasicServicesKit';
const session = rcp.createSession();
const URL_LOGIN = "https://mock.presstime.cn/mock/68e0fb395247e4d10b5f7811/hongmeng_app/login"
// const URL_LOGIN = "http://127.0.0.1:4523/m1/3733307-0-default/login"
const data: rcp.FormFields = {
"username": "admin",
"password": "123",
};
session.post(URL_LOGIN).then((response) => {
console.info("login请求--","请求成功,返回:",JSON.stringify(response));
console.info("login请求--",`状态码:`,response.statusCode);
const resp = response.toJSON()
if(resp) {
console.info("login请求--","code:", resp["code"]);
}
}).catch((err: BusinessError) => {
console.error("login请求--",`请求失败,错误码: ${err.code}, 错误消息: ${JSON.stringify(err)}`);
});
