当前位置: 首页 > 科技观察

HarmonyOS应用开发:鸿蒙网管、网络请求天气信息

时间:2023-03-14 20:51:22 科技观察

想了解更多开源内容,请访问:开源基础软件社区https://ost.51cto.com无论哪种技术开发,核心是网络通信、数据运算等主要业务处理环节。没有网络通信操作的应用不能说是坏应用,但一定是有缺陷的应用。鸿蒙也是如此。网络通信是核心培养技能,了解网络通信,使应用程序能够与后台进行通信,将数据存储在远程服务中或获取远程服务数据。今天我们就来说说网络通信的使用和实现。每天学一点点。场景:通过鸿蒙网通API中的GET和POST请求方式获取天气信息。下面开始今天的文章,还是老套路,通过以下几点:1、实现思路2、代码分析3、实现效果3、总结1、实现思路引入importhttpfrom'@ohos.net.http';网络模块通过lethttpRequest=http.createHttp();创建请求任务httpRequest.request添加请求,根据URL地址发起HTTP网络请求,回调方法作为异步方法。2、代码解析的前置配置:必须使用网络权限获取网络通信数据,需要在config.json配置文件中添加属性。"reqPermissions":[{"name":"ohos.permission.INTERNET"}],网络请求默认支持https。如果要支持http,需要添加如下配置:"deviceConfig":{"default":{"network":{"cleartextTraffic":true}}}1.在hml文件中添加两个按钮事件,其中用于通过get和post请求获取数据,并添加文字显示获取到的天气信息。天气信息:{{content}}

2、css文件.container{flex-direction:column;证明内容:居中;对齐项目:居中;边距:10px;}.title{宽度:100%;高度:60px;字体大小:20px;top:20px;}.content{font-size:25px;}3.js文件说明:引入importhttpfrom'@ohos.net.http';网络模块,通过lethttpRequest=http.createHttp();创建请求Task,httpRequest.request添加请求,根据URL地址,发起HTTP网络请求,回调方法作为异步方法。设置请求方式:http.RequestMethod.GET、http.RequestMethod.POST。设置请求头:header:{'Content-Type':'application/json'}。设置请求超时:readTimeout:60000,connectTimeout:60000。importhttpfrom'@ohos.net.http';exportdefault{data:{title:'World',content:""},onClickGet(){//每个httpRequest对应一个http请求任务,让httpRequest不能重复使用=http.createHttp();httpRequest.request("http://apis.juhe.cn/simpleWeather/query?key=397c9db4cb0621ad0313123dab416668&city=西安",{method:http.RequestMethod.GET,header:{'Content-Type':'application/json'},readTimeout:60000,connectTimeout:60000},(err,data)=>{if(!err){console.info('NetworkResult:'+data.result);this.content=data.result;console.info('网络代码:'+data.responseCode);console.info('网络头部:'+JSON.stringify(data.header));console.info('网络cookies:'+data.cookies);//8+康索le.info('网络header.Content-Type:'+data.header['Content-Type']);console.info('Networkheader.Status-Line:'+data.header['Status-Line']);}else{console.info('网络错误:'+JSON.stringify(err));}});},onClickPost(){//每个httpRequest对应一个http请求任务,不能重复使用lethttpRequest=http.createHttp();//用于订阅httpresponseheaders,request请求前会返回该接口,可根据业务需要订阅此消息//从API8开始,使用on('headersReceive',Callback)代替on('headerReceive',异步回调)。8+httpRequest.on('headersReceive',(header)=>{console.info('header:'+JSON.stringify(header));});httpRequest.request("http://apis.juhe.cn/simpleWeather/query?key=397c9db4cb0621ad0313123dab416668&city=西安",{method:http.RequestMethod.POST,//可选,默认为http.RequestMethod.GET//开发者可以根据自己的业务需要添加header字段header:{'Content-Type':'application/json'},//该字段用于POST请求时传递内容extraData:{"data":""},connectTimeout:60000,//可选,默认为60sreadTimeout:60000,//可选,默认为60s},(err,data)=>{if(!err){//data.result是http响应内容,可根据业务需要解析console.info('Result:'+data.result);this.content=data.result;console.info('code:'+data.responseCode);//data.header为HTTP响应头,可根据业务需要解析console.info('header:'+JSON.stringify(data.header));console.info('cookies:'+data.cookies);//8+}else{console.info('error:'+JSON.stringify(err));//当请求用完后,调用destroy方法主动销毁httpRequest.destroy();}});}}三、实现效果4.总结importhttpfrom'@ohos.net.http'的介绍;网络模块。通过lethttpRequest=http.createHttp();创建请求任务httpRequest.request添加请求,根据URL地址发起HTTP网络请求,回调方法作为异步方法。设置请求方式:http.RequestMethod.GET、http.RequestMethod.POST。设置请求头:header:{'Content-Type':'application/json'}。设置请求超时:readTimeout:60000,connectTimeout:60000postrequest设置请求正文:extraData:{"data":""}。了解更多开源知识,请访问:开源基础软件社区https://ost.51cto.com。