Qt打造HTTP客户端:与Linux C服务器通信
Qt打造HTTP客户端:与Linux C服务器通信
想要用Qt创建一个能够与Linux C HTTP服务器通信的界面?这篇文章为您提供一个简单的示例,演示如何使用Qt的网络模块连接到服务器并发送HTTP请求。cpp#include
class HttpInterface : public QWidget{ Q_OBJECT
public: HttpInterface(QWidget *parent = nullptr) : QWidget(parent) { // 创建界面元素 QVBoxLayout *layout = new QVBoxLayout(this); QLabel *urlLabel = new QLabel('URL:'); QLineEdit *urlLineEdit = new QLineEdit; QPushButton *sendButton = new QPushButton('Send'); QTextEdit *responseTextEdit = new QTextEdit;
layout->addWidget(urlLabel); layout->addWidget(urlLineEdit); layout->addWidget(sendButton); layout->addWidget(responseTextEdit);
// 连接信号和槽 connect(sendButton, &QPushButton::clicked, this, [this, urlLineEdit, responseTextEdit]() { QString url = urlLineEdit->text(); sendHttpRequest(url, responseTextEdit); }); }
private: void sendHttpRequest(const QString &url, QTextEdit *responseTextEdit) { QNetworkAccessManager *manager = new QNetworkAccessManager(this); QNetworkRequest request(url);
// 发送HTTP GET请求 QNetworkReply *reply = manager->get(request);
// 处理响应 connect(reply, &QNetworkReply::finished, this, [reply, responseTextEdit]() { if (reply->error() == QNetworkReply::NoError) { QByteArray response = reply->readAll(); responseTextEdit->setText(response); } else { responseTextEdit->setText(reply->errorString()); } reply->deleteLater(); }); }};
int main(int argc, char *argv[]){ QApplication app(argc, argv);
HttpInterface httpInterface; httpInterface.show();
return app.exec();}
这段代码创建了一个简单的HTTP客户端界面,包含输入URL的文本框、发送按钮和显示服务器响应的文本编辑框。点击发送按钮,sendHttpRequest 函数会被调用,使用 QNetworkAccessManager 发送HTTP GET请求。QNetworkReply 对象的 finished 信号用于处理服务器响应,成功则显示响应内容,否则显示错误信息。
您可以根据您的Linux C HTTP服务器的具体需求,扩展此示例以发送不同类型的HTTP请求,并实现更复杂的功能,例如用户登录、数据上传下载等。
原文地址: https://www.cveoy.top/t/topic/fBlU 著作权归作者所有。请勿转载和采集!