官方文檔:網絡管理開發概述
目錄標題
- 訪問淘寶公開接口(測試數據)
- 第1步:module.json5 配置網絡授權
- 第2步:下載axios
- 第3步:源碼
- 第4步:啟動模擬器
- 第5步:啟動entry
- 第6步:操作
訪問淘寶公開接口(測試數據)
http://rap2api.taobao.org/app/mock/293606/api/chat/list
第1步:module.json5 配置網絡授權
"requestPermissions": [{// 網絡授權"name":'ohos.permission.INTERNET'
}]
第2步:下載axios
Alt+F12 → 執行 ohpm install @ohos/axios
第3步:源碼
//1. 下載axios: Alt+F12 → 執行 ohpm install @ohos/axios
//2. 導入axios
import axios, { AxiosError, AxiosResponse } from '@ohos/axios'class DataInfo {list: Array<DataItem> = new Array()// list: Array<DataItem> = []
}class DataItem {originName: string = ''messageIconUrl: string = ''describe: string = ''remarkName: string = ''messageText: string = ''
}// 淘寶公開接口,返回的數據讀不懂(測試數據)
let url = 'http://rap2api.taobao.org/app/mock/293606/api/chat/list';@Entry
@Component
struct Page_axios {@State mockDataList: Array<DataItem> = []url = 'http://rap2api.taobao.org/app/mock/293606/api/chat/list';build() {Row() {Column() {Button('get axiosData').margin(20).onClick(() => {this.getAxiosData()})ForEach(this.mockDataList, (item: DataItem) => {Text(item.originName).fontColor(Color.Red)})Button('使用Axios獲取網絡數據').margin(20).onClick(() => {this.axiosGetHttpData();})ForEach(this.mockDataList, (item: DataItem) => {Text(item.originName).fontColor(Color.Blue)})}.width('100%')}.height('100%')}getAxiosData() {//3. axios發起請求axios.get(this.url).then((res: AxiosResponse) => {//4. axios獲取結果// res.dataAlertDialog.show({ message: JSON.stringify(res.data) })this.mockDataList = res.data.list})}axiosGetHttpData() {axios.get<DataInfo, AxiosResponse<DataInfo>, null>(url).then((resp: AxiosResponse<DataInfo>) => { // 獲取數據成功if (resp.status === 200) { // 獲取正確網絡數據AlertDialog.show({ message: JSON.stringify(resp.data.list) })this.mockDataList = resp.data.list} else {AlertDialog.show({ message: '獲取失敗' })}}).catch((err: AxiosError) => { // 網絡異常或者接口異常回調AlertDialog.show({ message: '獲取失敗' })})}
}