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