#Dayu200体验官# 第四章 openharmony eTS之网络请求http 原创 精华
yukoyu
发布于 2022-5-25 22:18
浏览
3收藏
#Dayu200体验官#第四章 openharmony eTS之网络请求http
一、eTS之网络通讯http讲解
1、头文件
import http from '@ohos.net.http';
2、createHttp() 接口
let httpRequest = http.createHttp();
参数:null
返回类型:HttpRequest
3、httpRequest.request()接口
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
url | string | 是 | 发起网络请求的URL地址。 |
callback | AsyncCallback<> | 是 | 回调函数。 |
4、httpRequest.on()接口
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
type | string | 是 | 订阅的事件类型:‘headersReceive’。 |
callback | Callback<Object> | 是 | 回调函数。 |
5、httpRequest.off()接口
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
type | string | 是 | 取消订阅的事件类型:‘headersReceive’。 |
callback | Callback<Object> | 否 | 回调函数。 |
二、添加网络权限
1、添加网络权限
"reqPermissions": [{
"name": "ohos.permission.INTERNET"
}],
2、支持http协议 (默认支持https)
"default": {
"network": {
"cleartextTraffic": true
}
}
三、eTS http之get请求
1、eTS get请求代码:
// @ts-nocheck
import http from '@ohos.net.http';
@Entry
@Component
struct Index {
@State message: string = "hello";
httpRequest:http.HttpRequest = http.createHttp();
build() {
Row() {
Column() {
Text(this.message)
.fontSize(50)
.fontWeight(FontWeight.Bold)
Button('get', { type: ButtonType.Normal, stateEffect: true })
.borderRadius(8)
.backgroundColor(0x317aff)
.fontSize(50)
.width(200)
.onClick(() => { //点击事件
this.httpget();
})
}
.width('100%')
}
.height('100%')
}
private httpget() {
this.httpRequest.request(
//请求地址
"http://192.168.0.36:5000",
{
method: http.RequestMethod.GET, //或者使用 method: http.RequestMethod.POST,
header: {
'Content-Type': 'application/json'
},
extraData: {
"data": "data to send",
},
connectTimeout: 60000,
readTimeout: 60000,
}, (err, data) => {
if (!err) {
console.info('Result:' + data.result);
//json string 转 obj
var obj = JSON.parse(data.result);
this.message = obj.data;
console.info('code:' + data.responseCode);
console.info('header:' + JSON.stringify(data.header));
console.info('cookies:' + data.cookies);
} else {
console.info('error:' + JSON.stringify(err));
this.httpRequest.destroy();
}
}
);
}
}
2、后端代码
使用python flask 实现简单的后端
import json
from flask import Flask, request
from flask_sqlalchemy import SQLAlchemy
from flask_migrate import Migrate
from flask_restful import Api
from flask_restful import Resource
import datetime
import config
app = Flask(__name__)
app.config.from_object(config)
db = SQLAlchemy(app)
api = Api(app)
class hello(Resource):
def post(self):
return { "data" : "hello post"} #post 请求
def get(self):
return { "data" : "hello get"} #get 请求
api.add_resource(hello, '/')
migrate = Migrate(app, db)
3、安装测试效果
按钮点击前:
按钮点击后:
log:打印信息
©著作权归作者所有,如需转载,请注明出处,否则将追究法律责任
已于2022-5-25 22:31:15修改
赞
7
收藏 3
回复
相关推荐
可以实现post请求吗??
可以哦,这个月没什么空发,7月会更新
请问大神,post 请求如何携带参数是可行的呢,官方文档的好像无法实现。
https://ost.51cto.com/posts/14533
https://ost.51cto.com/posts/14533