Qt实现客户端发送Http请求

首先开发一个Http的服务器,这里使用springboot快速开发一个Get接口和一个Post接口


@RestController
public class httpServer {


    @GetMapping("/get")
    public String getTest(String a){
        return "get return:hello "+a;
    }

    @PostMapping("/post")
    public String postTest(String b){
        return "post return:hello "+b;
    }
}

指定服务器的端口为8088

ok,下面回到qt ,新建一个QWidget窗口,

添加网络支持

QT += network

进入ui设计,拖入4个label控件和一个button控件

在这里插入图片描述

回到wid窗口对应的代码区

输入一下代码

#include "widget.h"
#include "ui_widget.h"
#include<QNetworkAccessManager>
#include<QNetworkReply>


Widget::Widget(QWidget *parent)
    : QWidget(parent)
    , ui(new Ui::Widget)
{
    ui->setupUi(this);

  }

void Widget::finishedSlot(QNetworkReply *reply)
{
     if (reply->error() == QNetworkReply::NoError)
     {
         QByteArray bytes = reply->readAll();
         qDebug() << bytes;
         if(reply->url()==QUrl("http://127.0.0.1:8088/get?a=qt")){
              ui->label_3->setText(bytes);
         }else{
              ui->label_4->setText(bytes);
         }



     }
     else
     {
         qDebug() << "finishedSlot errors here";
         qDebug( "found error .... code: %d\n", (int)reply->error());
         qDebug(qPrintable(reply->errorString()));
     }
     reply->deleteLater();
}

Widget::~Widget()
{
    delete ui;
}



void Widget::on_pushButton_clicked()
{

    QNetworkAccessManager *accessManager = new QNetworkAccessManager(this);

    connect(accessManager, SIGNAL(finished(QNetworkReply*)), this, SLOT(finishedSlot(QNetworkReply*)));

    QNetworkRequest request;
    request.setUrl(QUrl("http://127.0.0.1:8088/get?a=qt"));

    //get
   accessManager->get(request);


    request.setUrl(QUrl("http://127.0.0.1:8088/post"));
    QByteArray postData;
    postData.append("b=qt");

    //post
    accessManager->post(request, postData);

}

在button的clicked的槽函数中添加http请求的处理,分别发送Get请求和Post请求

启动项目看看:
在这里插入图片描述

点击发送

在这里插入图片描述

成功了 还是比较简单的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值