HTTP请求Demo,通过createHttp方法创建一个请求任务,再通过request方法发起网络请求
通过createHttp方法创建一个请求任务,再通过request方法发起网络请求。
HarmonyOS
赞
收藏 0
回答 1
待解决
相关问题
如何设置发起网络请求的权限
402浏览 • 1回复 待解决
网络请求实现AI聊天,应用可以通过HTTP发起一个数据请求,再解析返回的数据来实现简单ai聊天功能
644浏览 • 1回复 待解决
http请求支持patch方法
1965浏览 • 1回复 待解决
封装一个网络请求的公共方法要如何实现
395浏览 • 1回复 待解决
求告知如何发起HTTP请求
335浏览 • 1回复 待解决
HarmonyOS使用三方库axios发起网络请求,预览支持吗?
252浏览 • 1回复 待解决
http request 请求不到接口数据
4793浏览 • 1回复 待解决
使用http请求网络地址
713浏览 • 1回复 待解决
http网络请求,post请求如何传递body和参数,header
59浏览 • 1回复 待解决
如何通过网络请求获取数据并通过List组件展示
1735浏览 • 1回复 待解决
JS UI 做网络请求时,能否有地方查看HTTP请求状态?
4385浏览 • 1回复 待解决
使用HarmonyOS原生的网络请求类http如何发送表单请求
342浏览 • 0回复 待解决
网络请求创建后,持久化问题
519浏览 • 1回复 待解决
网络请求-GET请求传参
321浏览 • 1回复 待解决
rcp模块能力发起post请求
1060浏览 • 1回复 待解决
HarmonyOS3.0中使用http做网络请求,请求接口不成功。
2947浏览 • 1回复 待解决
HTTP请求使用同一SESSIONID
299浏览 • 1回复 待解决
如何通过拦截器来处理网络请求和响应
1750浏览 • 1回复 待解决
http 请求一直报 2300058
1556浏览 • 0回复 待解决
通过网络请求而来的 Cookie 如何同步配置到web中
2032浏览 • 1回复 待解决
napi调用C++网络请求逻辑,创建socket失败咋回事?napi方法能否使用async?
284浏览 • 1回复 待解决
RCP能力实现http网络请求时,设置session配置中关于onDataReceive方法的返回值
235浏览 • 1回复 待解决
Web组件如何发起一个下载任务?
312浏览 • 1回复 待解决
HarmonyOS通过 rawfile 中内容构造请求失败
366浏览 • 1回复 待解决
如何使用ArkTS 发起一个同步的请求,服务器有响应或出错才返回
827浏览 • 1回复 待解决
使用的核心API
http.createHttp
核心代码解释
首先在HttpUtil.ets中调用createHttp方法创建一个请求任务,再通过request方法发起网络请求。该方法支持三个参数:url、options以及callback回调,其中options可以设置请求方法、请求头以及超时时间等。
接着在入口页面中调用上述封装的httpGet方法请求指定网址,将请求得到的内容嵌入到Web组件中。
分析模块源码可知,通过request方法建立请求后,模块底层首先会调用三方库libcurl中的curl_easy_init初始化一个简单会话。初始化完成后,接着调用curl_easy_setopt方法设置传输选项。其中CURLOPT_URL用于设置请求的URL地址,对应request中的url参数;CURLOPT_WRITEFUNCTION可以设置一个回调,保存接收的数据;CURLOPT_HEADERDATA支持设置回调,在回调中保存响应头数据。
传输选项设置成功后,调用curl_multi_perform执行传输请求,并通过curl_multi_info_read查询处理句柄是否有消息返回,最后进入HandleCurlData方法处理返回数据。
在HandleCurlData函数中调用ParseHeaders函数将上面回调写入的响应头解析出来,其中响应头中会携带客户端和服务端支持的最高网络协议,如果是HTTP/2表示支持HTTPS加密传输。