HarmonyOS 鸿蒙Next网络请求

发布于 1周前 作者 vueper 最后一次编辑是 5天前 来自 鸿蒙OS

HarmonyOS 鸿蒙Next网络请求

申请网络权限

使用之前需要在module.json5配置文件中申请网络权限

“requestPermissions”  : [

    {

      “name”: ‘ohos.permission.INTERNET’

    }

  ],

导入http模块

import http from ‘@ohos.net.http’;   

// @ts-nocheck

import agconnect from ‘@hw-agconnect/api-ohos’;

import http from ‘@ohos.net.http’;

import router from ‘@ohos.router’;

import common from ‘@ohos.app.ability.common’;

import call from ‘@ohos.telephony.call’;

let httpRequest = http.createHttp();

@Entry

@Component

struct LibraryDetailPage {

  private nameUrl =‘https://d3159bfbd11c41ebaed789591af92ddc.apig.cn-north-4.huaweicloudapis.com/API_Demo’

  private descriptionUrl =‘https://d3159bfbd11c41ebaed789591af92ddc.apig.cn-north-4.huaweicloudapis.com/API_Demo1’

  @State libraryName: string = ‘加载中…’;

  @State libraryDescription: string = ‘加载中…’;

  aboutToAppear() {

    this.onRequestHttpData()

    this.onRequestHttpData2()

  }

  build() {

    Column() {

      Row(){

        Text(this.libraryName)

          .fontColor(Color.White)

          .fontSize(30)

          .fontWeight(600)

        Image($r(‘app.media.phone’))

          .width(40)

          .fillColor(Color.White)

          .onClick(() => {

            call.makeCall("", (err,data) => {

            })

          })

      }

      .justifyContent(FlexAlign.Center)

      .width(‘100%’)

      .height(60)

      .margin(20)

      .backgroundColor(’#00aaaa’)

      // 图书馆照片

      Image($r(‘app.media.tushuguan’))

        .width(400)

        .height(250)

        .margin({ bottom: 20 })

      // 图书馆简介

      Text(this.libraryDescription)

        .lineHeight(22)

        .fontSize(20)

        .padding({ left: 15, right: 15 })

        .margin({ bottom: 20 });

      // 下一页跳转按钮

      Button(‘下一页’)

        .onClick(() => {

          this.navigateToNextPage();

        })

        .backgroundColor(’#00aaaa’)

        .width(300)

        .height(50)

        .onClick(() => {

          router.pushUrl({

            url:‘pages/Book’

          })

        })

    }

    .width(‘100%’)

  }

  //网络请求

  onRequestHttpData2() {

    //设置请求单配置

    let options: http.HttpRequestOptions = {

      header: {

        //设置返回的类型

        “Content-Type”: “text/plaint;charset:UTF-8”

      },

      usingCache: true, //是否缓存

      connectTimeout: 60000, //请求链接的时间

      readTimeout: 10000,

    }

    httpRequest.request(this.nameUrl, options, (err, data: http.HttpResponse) => {

      this.libraryName = data.result.toString()

      httpRequest.destroy()

    })

  }

  //网络请求

  onRequestHttpData() {

    //设置请求单配置

    let options: http.HttpRequestOptions = {

      header: {

        //设置返回的类型

        “Content-Type”: “text/plaint;charset:UTF-8”

      },

      usingCache: true, //是否缓存

      connectTimeout: 60000, //请求链接的时间

      readTimeout: 10000,

    }

    httpRequest.request(this.descriptionUrl, options, (err, data: http.HttpResponse) => {

      this.libraryDescription = data.result.toString()

      httpRequest.destroy()

    })

  }

  navigateToNextPage() {

    // 跳转到下一页逻辑

    // 例如:导航到书籍列表页

    // router.push(’/path/to/bookListPage’); // 替换为实际的路由路径

    console.log(‘Navigating to the next page…’);

  }

}
1 回复

针对HarmonyOS 鸿蒙Next网络请求的问题,以下是一些可能的解决方案:

  1. 检查网络连接:确保设备已连接到稳定有效的网络,避免网络不稳定或服务器响应慢导致的超时。
  2. 验证URL有效性:确认请求的URL是否有效且服务器能正常响应,URL错误或服务器故障可能导致请求失败。
  3. 检查网络权限:在应用的manifest文件或model.json5文件中正确配置网络权限,确保应用有权进行网络请求。
  4. 检查证书有效性:如果使用了HTTPS协议,确保服务器SSL证书有效,避免因证书问题导致连接失败。
  5. 系统资源检查:检查设备系统资源(如CPU、内存)是否充足,资源不足可能导致处理速度变慢,从而引发超时。
  6. 网络库更新:如果使用第三方网络库(如axios),尝试更新到最新版本,或检查是否有已知的兼容性问题。

在开发过程中,应确保HTTP请求方法正确,处理响应时逻辑无误。如果问题依旧没法解决请联系官网客服,官网地址是:https://www.itying.com/category-93-b0.html

回到顶部