1
0

HttpClientPage.cpp 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. #include "HttpClientPage.h"
  2. #include <QBoxLayout>
  3. #include "mainwindow.h"
  4. HttpClientPage::HttpClientPage(QWidget *parent) : QWidget(parent)
  5. {
  6. initUI();
  7. initConnect();
  8. }
  9. HttpClientPage::~HttpClientPage()
  10. {
  11. }
  12. void HttpClientPage::initUI()
  13. {
  14. QHBoxLayout* hbox = new QHBoxLayout;
  15. // method
  16. hbox->addWidget(new QLabel("method:"));
  17. method = new QComboBox;
  18. method->addItems({ "GET", "POST", "PUT", "DELETE", "PATCH", "HEAD" });
  19. method->setCurrentText("POST");
  20. hbox->addWidget(method);
  21. // url
  22. hbox->addWidget(new QLabel("url:"));
  23. urlEdt = new QLineEdit("http://127.0.0.1:8080/echo");
  24. hbox->addWidget(urlEdt);
  25. setLayout(hbox);
  26. }
  27. void HttpClientPage::initConnect()
  28. {
  29. }
  30. int HttpClientPage::send(const QString& msg)
  31. {
  32. requests::Request req(new HttpRequest);
  33. req->SetMethod(method->currentText().toStdString().c_str());
  34. req->SetUrl(urlEdt->text().toStdString().c_str());
  35. req->SetBody(msg.toStdString());
  36. return requests::async(req, [](const requests::Response& resp) {
  37. if (resp == nullptr) {
  38. g_mainwnd->postMessage("request failed!");
  39. } else {
  40. g_mainwnd->postMessage(QString("received http response:\n") + QString::fromStdString(resp->Dump(true, true)));
  41. }
  42. });
  43. }