1 用途
【HTTP】控件用于访问支持HTTP协议的网站,支持GET、POST、Upload、DownLoad四种请求。程序运行时控件不可见。
建议放在公共页中使用。
2 属性
2.1 控件
控件名,页面内唯一。
2.2 协议头
设置发送请求时附加的协议头参数(选配),可以添加多条请求头信息。
2.3 连接超时
设置连接超时(单位:s),默认5。
2.4 请求超时
设置请求的超时时间(单位:s),默认10。
2.5 代理服务器
配置代理服务器参数(选配)
2.6 事件处理
定义接收到响应后的回调处理函数。
3 测试示例
对于Get Post请求可以访问示例api网站进行测试功能
1)GET方法
发送请求函数定义:
int ret=wMHttp2->get("http://jsonplaceholder.typicode.com/posts/1");
//输出执行结果
cout << "ret=" << ret << endl;
ret :
成功:返回sessionid(>10000)
失败:其它值
响应回调函数:
void Frm01::wMHttp2_ref_cb(uint16_t code, LvEvent e) {
string res=wMHttp2->mResponse;
cout << "----response=\n" << res << endl;
}
2) POST方法
对于Post请求 需要额外添加结构体,示例代码如下:
void Frm01::wMButton13_clk_cb(uint16_t code, LvEvent e) {
string data;
map<string, string> map1;
map1["title"] = "foo";
map1["body"] = "bar" ;
map1["userId"] = util::StringUtil::vertInt("1");
int ret = wMHttp2->post("http://jsonplaceholder.typicode.com/posts" ,util::StringUtil::mapToJson(map1));
cout << "ret=" << ret << endl;
}
3) upload方法
upload测试这里是使用本地HTTP/FTT服务器,服务器的搭建请参考本地http/ftp服务器搭建。
void Frm01::wMButton14_clk_cb(uint16_t code, LvEvent e) {
int ret = wMHttp2->upload("ftp://192.168.110.241/operationlog.db","./data/operationlog.db");
cout << "ret=" << ret << endl;
}
4) download方法
download测试这里是使用本地HTTP/FTT服务器,服务器的搭建请参考本地http/ftp服务器搭建。
void Frm01::wMButton15_clk_cb(uint16_t code, LvEvent e) {
int ret = wMHttp2->download("http://192.168.110.241/SIMTUTAI0.jpg","./data/SIMTUTAI0.jpg");
cout << "ret=" << ret << endl;
}
4 其它API
如在请求发出前需要自定义配置,可以使用setoption函数设置,如下所示:
wMHttp2->setoption(stt::constant::CURLOPT ::FTP_RESPONSE_TIMEOUT,150);
其他配置参数类别 可以从 库->base->Constants.h->CURLOPT 中进行选择。