# C++网络请求(get,post,上传图片)与QML混合编程

本文介绍了如何在C++中实现网络请求(GET, POST, 上传图片)并与QML进行混合编程。内容包括QNetworkAccessManager、QNetworkRequest、QNetworkReply的使用,信号与槽的响应机制,以及QML与C++间的数据转换。提供源码下载以供深入学习。" 48831939,1302517,Android 广播机制详解,"['Android开发', 'BroadcastReceiver', 'Intent']
摘要由CSDN通过智能技术生成

C++网络请求(get,post,上传图片)与QML混合编程

文章主要分两个大模块:C++模块和qml模块;包含了Qt下网络请求QNetworkAccessManager,QNetworkRequest,QNetworkReply类库,以及响应机制:信号与槽,同时还兼容了QML与C++信息的传递以及数据类型的转换;本人刚学QT不到一个月且第一次写文章给大家分享,如有不好的地方欢迎大家留言给出宝贵的意见。好了,啰嗦了半天,接着就看正文吧:

  • get实现
  • post实现
  • 上传图片
  • 获取网络返回结果并传递结果给qml
  • qml与C++传递过程的数据转换
  • qml使用C++网络类

get实现

这里两个参数其实分别是手机号码和请求接口名
RequestBaseStr_REGIST为宏定义请求接口地址

void CCNetWorkRequest::CCRequest_GET(QString param, QString interfaStr)
{
   requestURL_Str = RequestBaseStr_REGIST;
   requestURL_Str.append(interfaStr);
   requestURL_Str.append(param);
   qDebug()<<"req_url:"<<requestURL_Str;
   //此处为返回给qml界面其所发出的请求信息(主要便于测试验证请求参数是否正确)
   emit reqParamsReturn(requestURL_Str);
   _netWorkRequest.setUrl(QUrl(requestURL_Str));
   //通过manager直接调用get方法将request传递过去就可以了!
   _netWorkManager->get(_netWorkRequest);
}

post实现

这里设计时第一个参数为qml传递过来的所需请求所有参数的json字符,第二个参数同上,接口名称

void CCNetWorkRequest::CCRequest_POST(QString param, QString interfaStr)
{
   requestURL_Str = RequestBaseStr_REGIST;
   requestURL_Str.append(interfaStr);
   //这里主要将qml传递过来的json转换为请求data
   transData = CCQmlStrToByteArray(param);
   //校验传递的参数是否正确
   if(transData.isNull())
   {
       emit reqErrorReturn("请求参数错误!")
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值