HarmonyOS 鸿蒙Next中HTTP请求没有PATCH方法吗?
HarmonyOS 鸿蒙Next中HTTP请求没有PATCH方法吗?
method: http.RequestMethod.PATCH,不存在这个方法啊?看文档也没有写PATCH方法的,服务端可是要求PATCH提交的,如何是好?
换个三方的网络请求库试试?用Axios试一下
更多关于HarmonyOS 鸿蒙Next中HTTP请求没有PATCH方法吗?的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html
这个可以的,还是推荐使用这个,用的习惯一点,
继续用原生的话,那就换用Rcp发请求,里面有patch功能,
希望HarmonyOS能继续加强在安全性方面的研发,保护用户的隐私和数据安全。
推荐使用 Axios
ohpm install @ohos/axis
用Axios 封装好的
找HarmonyOS工作还需要会Flutter的哦,有需要Flutter教程的可以学学大地老师的教程,很不错,B站免费学的哦:https://www.bilibili.com/video/BV1S4411E7LY/?p=17
这边可以尝试换一个Kit
Network Kit
| 名称 | 值 | 说明 |
|---|---|---|
| OPTIONS | “OPTIONS” | OPTIONS方法描述了目标资源的通信选项。 |
| GET | “GET” | GET方法请求指定资源的表示。使用GET的请求应该只检索数据,不应该包含请求内容。 |
| HEAD | “HEAD” | HEAD方法请求与GET请求相同的响应,但没有响应主体。 |
| POST | “POST” | POST方法将实体提交给指定的资源,通常会导致服务器上的状态更改。 |
| PUT | “PUT” | PUT方法将目标资源的所有当前表示替换为请求内容。 |
| DELETE | “DELETE” | DELETE方法用于删除指定的资源。 |
| TRACE | “TRACE” | TRACE方法沿到达目标资源的路径执行消息环回测试。 |
| CONNECT | “CONNECT” | CONNECT方法建立到由目标资源标识的服务器的隧道。 |
参考[@ohos.net.http (数据请求)-ArkTS API-Network Kit(网络服务)-网络-系统 - 华为HarmonyOS开发者](https://developer.huawei.com/consumer/cn/doc/harmonyos-references/js-apis-http#requestmethod)
Remote Communication Kit 支持 PATCH
| 请求类型 | 说明 |
|---|---|
| GET | 获取资源,用于请求特定资源的表示形式。常用场景:获取网页、图片、视频等资源。 |
| POST | 提交资源,用于提交实体,通常用于提交表单数据。常用场景:提交数据,如表单数据、上传文件等。 |
| OPTIONS | 获取资源支持的HTTP方法。常用场景:查询有关目标资源所支持的HTTP方法,如获取某个API支持的请求方式。 |
| HEAD | 获取资源的元数据,与GET方法类似,但不返回资源的主体部分,只返回资源的元数据,如响应头。常用场景:获取资源的头部信息,如文件大小、修改时间等。 |
| PUT | 更新资源,用于修改已经存在服务器上的资源,对指定URL路径上的资源进行完全替换。常用场景:更新资源,如更新文件、修改数据库记录等。 |
| DELETE | 删除资源,用于删除目标资源。常用场景:删除如用户、文章等资源。 |
| PATCH | 更新资源的一部分,用于对资源进行局部修改。常用场景:更新服务器局部资源,如资源的某些属性和字段,而不需要替换整个资源。 |
Remote Communication Kit简介-Remote Communication Kit(远场通信服务)-网络-系统 - 华为HarmonyOS开发者
鸿蒙Next的HTTP请求支持PATCH方法。开发者可通过@ohos.net.http模块的createHttp()方法创建实例,使用request()方法发送请求时,将method参数设置为"PATCH"即可。具体实现需参照鸿蒙官方API文档中关于HTTP模块的说明,其中明确列出了PATCH作为标准请求方法之一。
在HarmonyOS Next中,http.RequestMethod 枚举目前确实没有直接提供 PATCH 方法。你可以通过以下方式实现PATCH请求:
- 使用
http.RequestMethod.PUT并添加自定义头部X-HTTP-Method-Override: PATCH - 直接使用字符串
"PATCH"作为method参数:
let method: string = "PATCH";
建议检查服务端是否支持其他方法替代,或者与服务端团队协商调整接口设计。目前这是官方API的一个限制,需要开发者自行处理PATCH方法的实现。

