Qt实现客户端发送Http请求

ゝ一纸荒年。 2023-02-20 06:29 169阅读 0赞

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

  1. @RestController
  2. public class httpServer {
  3. @GetMapping("/get")
  4. public String getTest(String a){
  5. return "get return:hello "+a;
  6. }
  7. @PostMapping("/post")
  8. public String postTest(String b){
  9. return "post return:hello "+b;
  10. }
  11. }

指定服务器的端口为8088

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

添加网络支持

  1. QT += network

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

在这里插入图片描述

回到wid窗口对应的代码区

输入一下代码

  1. #include "widget.h"
  2. #include "ui_widget.h"
  3. #include<QNetworkAccessManager>
  4. #include<QNetworkReply>
  5. Widget::Widget(QWidget *parent)
  6. : QWidget(parent)
  7. , ui(new Ui::Widget)
  8. {
  9. ui->setupUi(this);
  10. }
  11. void Widget::finishedSlot(QNetworkReply *reply)
  12. {
  13. if (reply->error() == QNetworkReply::NoError)
  14. {
  15. QByteArray bytes = reply->readAll();
  16. qDebug() << bytes;
  17. if(reply->url()==QUrl("http://127.0.0.1:8088/get?a=qt")){
  18. ui->label_3->setText(bytes);
  19. }else{
  20. ui->label_4->setText(bytes);
  21. }
  22. }
  23. else
  24. {
  25. qDebug() << "finishedSlot errors here";
  26. qDebug( "found error .... code: %d\n", (int)reply->error());
  27. qDebug(qPrintable(reply->errorString()));
  28. }
  29. reply->deleteLater();
  30. }
  31. Widget::~Widget()
  32. {
  33. delete ui;
  34. }
  35. void Widget::on_pushButton_clicked()
  36. {
  37. QNetworkAccessManager *accessManager = new QNetworkAccessManager(this);
  38. connect(accessManager, SIGNAL(finished(QNetworkReply*)), this, SLOT(finishedSlot(QNetworkReply*)));
  39. QNetworkRequest request;
  40. request.setUrl(QUrl("http://127.0.0.1:8088/get?a=qt"));
  41. //get
  42. accessManager->get(request);
  43. request.setUrl(QUrl("http://127.0.0.1:8088/post"));
  44. QByteArray postData;
  45. postData.append("b=qt");
  46. //post
  47. accessManager->post(request, postData);
  48. }

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

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

点击发送

在这里插入图片描述

成功了 还是比较简单的。

发表评论

表情:
评论列表 (有 0 条评论,169人围观)

还没有评论,来说两句吧...

相关阅读