OpenHarmony开发者论坛
标题:
汇率转换
[打印本页]
作者:
lotusboy
时间:
2024-12-22 14:00
标题:
汇率转换
[md]## 创建项目
![1.png](
https://forums-obs.openharmony.c ... 5xkle6llzuga78a.png
"1.png")
![2.png](
https://forums-obs.openharmony.c ... g4grhgg5mv1o1b1.png
"2.png")
![](file://C:%5CUsers%5CLenovo%5CAppData%5CRoaming%5Cmarktext%5Cimages%5C2024-12-21-19-15-05-image.png?msec=1734846616425)
![](file://C:%5CUsers%5CLenovo%5CAppData%5CRoaming%5Cmarktext%5Cimages%5C2024-12-21-19-16-19-image.png?msec=1734846616409)
## 熟悉接口
地址:[汇率查询-ALAPI](
https://www.alapi.cn/api/view/88
)
接口地址: [
https://v2.alapi.cn/api/exchange
](
https://v2.alapi.cn/api/exchange
)
---
请求方法: [ "GET", "POST" ]
---
请求参数:
| 名称 | 必填 | 类型 | 描述 | 示例 |
| ----- | ----- | ------ | ------------------------- | ----------------- |
| token | true | string | 请求token,用户中心获取。 | 用户中心获取token |
| money | false | int | 要换算的金额,默认1 | 1 |
| from | | string | 来源货币 | USD |
| to | | string | 要转换的货币 | CNY |
---
返回参数:
| 名称 | 描述 |
| -------------------- | ----------------------------- |
| exchange | 汇率 |
| exchange\_round | 四舍五入很汇率,保留 4 位小数 |
| currency\_money | 货币金额 |
| currency\_form | 原货币代码 |
| currency\_form\_name | 货币名称 |
| currency\_to | 目标货币代码 |
| currency\_to\_name | 目标货币名称 |
| update\_time | 更新时间 |
## 了解HTTP数据请求步骤
request接口开发步骤
1. [从@ohos.net.http中导入http命名空间。](mailto:%E4%BB%
8E@ohos.net.http
%E4%B8%AD%E5%AF%BC%E5%85%A5http%E5%91%BD%E5%90%8D%E7%A9%BA%E9%97%B4%E3%80%82)
2. 调用createHttp()方法,创建一个HttpRequest对象。
3. 调用该对象的on()方法,订阅http响应头事件,此接口会比request请求先返回。可以根据业务需要订阅此消息。
4. 调用该对象的request()方法,传入http请求的url地址和可选参数,发起网络请求。
5. 按照实际业务需要,解析返回结果。
6. 调用该对象的off()方法,取消订阅http响应头事件。
7. 当该请求使用完毕时,调用destroy()方法主动销毁。
第一步(导入包名)
![3.png](
https://forums-obs.openharmony.c ... g3s00gd88y83p4g.png
"3.png")
![](file://C:%5CUsers%5CLenovo%5CAppData%5CRoaming%5Cmarktext%5Cimages%5C2024-12-21-19-27-13-image.png?msec=1734846616410)
第二步(调用createHttp()方法,创建一个HttpRequest对象)
![4.png](
https://forums-obs.openharmony.c ... giig5f3lrl3yyg5.png
"4.png")
![](file://C:%5CUsers%5CLenovo%5CAppData%5CRoaming%5Cmarktext%5Cimages%5C2024-12-21-19-27-54-image.png?msec=1734846616409)
第三步
![5.png](
https://forums-obs.openharmony.c ... ku0707rye6kk997.png
"5.png")
![](file://C:%5CUsers%5CLenovo%5CAppData%5CRoaming%5Cmarktext%5Cimages%5C2024-12-21-19-28-46-image.png?msec=1734846616410)
第四步(调用该对象的request()方法)
![6.png](
https://forums-obs.openharmony.c ... rtidv4vruh3roli.png
"6.png")
![](file://C:%5CUsers%5CLenovo%5CAppData%5CRoaming%5Cmarktext%5Cimages%5C2024-12-21-20-12-34-image.png?msec=1734846616438)
第五步(添加网络权限)
![7.png](
https://forums-obs.openharmony.c ... xgccwvkkn6rnkrz.png
"7.png")
![](file://C:%5CUsers%5CLenovo%5CAppData%5CRoaming%5Cmarktext%5Cimages%5C2024-12-21-19-54-57-image.png?msec=1734846616411)
第六步(解析数据)
![8.png](
https://forums-obs.openharmony.c ... szvnennlt1lnynn.png
"8.png")
![](file://C:%5CUsers%5CLenovo%5CAppData%5CRoaming%5Cmarktext%5Cimages%5C2024-12-21-20-19-14-image.png?msec=1734846616411)
## model
![9.png](
https://forums-obs.openharmony.c ... zjk9sjek4194zqe.png
"9.png")
![](file://C:%5CUsers%5CLenovo%5CAppData%5CRoaming%5Cmarktext%5Cimages%5C2024-12-21-20-19-52-image.png?msec=1734846616411)
## 完整代码
![10.png](
https://forums-obs.openharmony.c ... qwwudophak7kzua.png
"10.png")
![11.png](
https://forums-obs.openharmony.c ... 15111g3q5gcyv7q.png
"11.png")
![12.png](
https://forums-obs.openharmony.c ... okas3o9xd00omdk.png
"12.png")
![13.png](
https://forums-obs.openharmony.c ... 64uf1pb7lglpvmb.png
"13.png")
![](file://C:%5CUsers%5CLenovo%5CAppData%5CRoaming%5Cmarktext%5Cimages%5C2024-12-21-21-13-00-image.png?msec=1734846616427)
![](file://C:%5CUsers%5CLenovo%5CAppData%5CRoaming%5Cmarktext%5Cimages%5C2024-12-21-21-13-22-image.png?msec=1734846616438)
![](file://C:%5CUsers%5CLenovo%5CAppData%5CRoaming%5Cmarktext%5Cimages%5C2024-12-21-21-13-49-image.png?msec=1734846616427)
![](file://C:%5CUsers%5CLenovo%5CAppData%5CRoaming%5Cmarktext%5Cimages%5C2024-12-21-21-14-14-image.png?msec=1734846616428)
## 效果
![14.png](
https://forums-obs.openharmony.c ... lo0jr73l3hkzfhg.png
"14.png")
![15.png](
https://forums-obs.openharmony.c ... 98l4b4cvlvt494s.png
"15.png")
![](file://C:%5CUsers%5CLenovo%5CAppData%5CRoaming%5Cmarktext%5Cimages%5C2024-12-21-21-19-08-image.png?msec=1734846616413)
![](file://C:%5CUsers%5CLenovo%5CAppData%5CRoaming%5Cmarktext%5Cimages%5C2024-12-21-21-19-30-image.png?msec=1734846616413)
## 参考
* [HTTP请求](
https://developer.huawei.com/con ... mic-http-request-V5
)
* **[ArkTS语法适配背景](
https://developer.huawei.com/con ... ation-background-V5
)**
* **[从TypeScript到ArkTS的适配规则](
https://developer.huawei.com/con ... -migration-guide-V5
)**
* **[适配指导案例](
https://developer.huawei.com/con ... arkts-more-cases-V5
)**
# 项目收获
在我深入参与并完成这个汇率转换的项目中,我取得了一系列宝贵的收获,这些收获不仅丰富了我的技术知识,也提升了我的实践能力。
## 深化HTTP请求理解
首先,我加深了对HTTP请求流程的理解。通过实际操作,我熟悉了如何构建HTTP请求,包括GET和POST方法的使用,以及如何在请求中包含必要的参数。这让我对网络通信有了更直观的认识。
## 掌握API调用
其次,通过与ALAPI汇率查询接口的交互,我学会了如何获取和使用API密钥,以及如何处理API返回的数据。这个过程让我对API调用有了更深入的了解,也让我意识到了数据安全和隐私保护的重要性。
## 技术语言适配
在技术层面,我通过从TypeScript到ArkTS的适配过程,掌握了ArkTS的语法和特性。这不仅让我能够在HarmonyOS平台上开发应用,也让我对不同编程语言之间的差异和共性有了更深刻的认识。
## 网络编程实践
通过编写完整的HTTP请求代码,我获得了网络编程的实际经验。我学会了如何创建HttpRequest对象,如何订阅和处理HTTP响应头事件,以及如何解析和处理返回的数据。这些技能对于我未来的开发工作至关重要。
## 调试与问题解决
在调试和问题解决方面,我在开发过程中遇到了各种挑战,如网络请求失败、数据解析错误等。通过解决这些问题,我提高了自己的调试技巧和问题解决能力,这让我在面对未来开发中的难题时更有信心。
## 完整开发流程体验
此外,我通过这个项目体验了完整的开发流程,从项目创建到熟悉接口、编写代码、测试和调试。这让我对软件开发的全貌有了更全面的认识,也让我学会了如何更有效地规划和管理项目。
## 激发学习热情
最后,通过这个项目,我发现自己对编程和开发的兴趣更加浓厚。这将激励我继续学习和探索新的技术领域,不断提升自己的技能和知识。
[/md]
欢迎光临 OpenHarmony开发者论坛 (https://forums.openharmony.cn/)
Powered by Discuz! X3.5