鸿蒙-简单实现一个http请求网络数据

本文详细描述了如何在OHOS平台上使用HTTP库进行GET请求,获取JSON数据,并在请求成功后更新Text组件的内容。
摘要由CSDN通过智能技术生成

实现需求:

1.build之前http获取json数据

2.创建一个Text文本,默认文本内容为:'还没有数据'

3.http加载成功后 文本内容修改为“http请求的json数据”

实现代码:

步骤一:引入http

import http from '@ohos.net.http';

步骤二:build之前http获取json数据

aboutToAppear(){
  let httpRequest = http.createHttp();
  httpRequest.on('headersReceive', (header) => {
    console.info('header: ' + JSON.stringify(header));
  });
  httpRequest.request(
    // 填写HTTP请求的URL地址,可以带参数也可以不带参数。URL地址需要开发者自定义。请求的参数可以在extraData中指定
    "https:需要请求的url",
    {
      method: http.RequestMethod.GET, // 可选,默认为http.RequestMethod.GET
      // 开发者根据自身业务需要添加header字段
      header: {
        'Content-Type': 'application/json'
      },
    }, (err, data) => {
    if (!err) {
      
    } else {
      console.info('error:' + JSON.stringify(err));
      // 取消订阅HTTP响应头事件
      httpRequest.off('headersReceive');
      // 当该请求使用完毕时,调用destroy方法主动销毁。
      httpRequest.destroy();
    }
  }
  );
}

步骤三:创建Text文本

@State message: string = '还没有数据'
build() {
  Row({ space: 200 }) {
    Text(this.message)
      .height('300')
      .fontSize(14)
      .position({x:20,y:100})
      .align(Alignment.Center)


  }

}

步骤四:http加载成功后 文本内容刷新修改为“http请求的json数据”

全部代码实现

import http from '@ohos.net.http';
@Entry
@Component
struct MyText {
  // 声明写在build之前
  @State message: string = '还没有数据'
  aboutToAppear(){
    let httpRequest = http.createHttp();
    httpRequest.on('headersReceive', (header) => {
      console.info('header: ' + JSON.stringify(header));
    });
    httpRequest.request(
      // 填写HTTP请求的URL地址,可以带参数也可以不带参数。URL地址需要开发者自定义。请求的参数可以在extraData中指定
      "https:需要请求的url",
      {
        method: http.RequestMethod.GET, // 可选,默认为http.RequestMethod.GET
        // 开发者根据自身业务需要添加header字段
        header: {
          'Content-Type': 'application/json'
        },
      }, (err, data) => {
      if (!err) {
        this.message = JSON.stringify(data.result)
      } else {
        console.info('error:' + JSON.stringify(err));
        // 取消订阅HTTP响应头事件
        httpRequest.off('headersReceive');
        // 当该请求使用完毕时,调用destroy方法主动销毁。
        httpRequest.destroy();
      }
    }
    );
  }
  build() {
    Row({ space: 200 }) {
      Text(this.message)
        .height('300')
        .fontSize(14)
        .position({x:20,y:100})
        .align(Alignment.Center)


    }

  }
}

实现结果

  • 24
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
鸿蒙系统中的网络请求API,通常指的是HarmonyOS提供的HTTPHTTPS请求相关的接口,用于应用程序与远程服务器进行数据交互。在HarmonyOS中,你可以使用`HMS Networking`(华为移动服务网络模块)或内置的`URLSession`等类似的网络请求库。 **HMS Networking**: - `HMSSDK.HttpClient`:这是华为云推送服务的一部分,提供了一个方便的方式来发起HTTP请求,支持GET、POST、PUT等方法,并提供了处理响应和错误的方法。 - `HMS.HttpRequest`:这是更底层的接口,允许自定义请求头和设置超时等参数。 **内置URLSession**: - `URLSessionDataTask`:如果你的应用程序不需要依赖华为服务,可以使用iOS和macOS的标准网络请求工具,比如创建一个URLSession实例,然后通过DataTask发起网络请求。 **使用示例**: ```java // 使用HMS Networking import com.huawei.hms.network.HttpRequest; HttpRequest request = new HttpRequest(); request.setMethod(HttpMethod.GET); request.setUri("https://api.example.com/data"); request.addHeader("Authorization", "Bearer " + accessToken); HttpResponse response = request.sendSync(); // 处理响应... // 或者使用URLSession URL url = new URL("https://api.example.com/data"); NSMutableURLRequest requestObj = [NSMutableURLRequest requestWithURL:url]; requestObj.HTTPMethod = @"GET"; NSURLSession *session = [NSURLSession sharedSession]; NSURLSessionDataTask *dataTask = [session dataTaskWithRequest:requestObj completionHandler:^(NSData * _Nullable data, NSURLResponse * _Nullable response, NSError * _Nullable error) { // 处理数据... }]; [dataTask resume]; ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值