该案例可适用于大部分有关 http 的工程。以案例工程httpTestDemo
为介绍主要对象。
页面上有四个 http 控件,代表着 http 的四种方法。下面将依次对 get/post/download/upload 进行讲解。
get 请求最为简单,无需对控件进行设置。直接添加相应的事件处理的函数
在点击事件中,发送请求
wMHttp2->get("http://jsonplaceholder.typicode.com/comments?postId=1");
post 请求需要设置请求头,如下图所示:
在数据方面,需要的是 json 类型的请求体,可以参考以下写法:
map<string, string> map1;
map1["title"] = "foo";
map1["body"] = "bar";
map1["userId"] = util::StringUtil::vertInt("1");
wMHttp3->post("http://jsonplaceholder.typicode.com/posts",util::StringUtil::mapToJson(map1));
util::StringUtil::vertInt("1");
表示传入的数据为整型。对于其他的类型,可以进行组合后,调用mapToJson
将会自动转化为 json 格式。
下载文件到本地。加入控件后无需配置参数。下面代码为:自建 http 网站,将图片下载至本地
string filePath1 = "E:\\1.jpg";
wMHttp4->download("http://192.168.110.242/yy.jpg", filePath1);
上传文件到网站/服务器。下面代码为:自建 ftp 网站,将代码上传到服务器
// 设置ftp响应延时
wMHttp5->setOption(stt::constant::CURLOPT::FTP_RESPONSE_TIMEOUT,150);
wMHttp5->upload("ftp://192.168.110.242/test.mp4", "D:\\test.mp4");
long ret = wMHttp3->mResponseCode;
string val = wMHttp5->mResponse;