QT中 如何让webView发送post请求?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了QT中 如何让webView发送post请求?相关的知识,希望对你有一定的参考价值。

QString urltext = ui->lineEdit->text();

QNetworkRequest *request = new QNetworkRequest();

QNetworkAccessManager::Operation op = QNetworkAccessManager::GetOperation;

QByteArray body;

body.append("username=admin");

request->setUrl(QUrl(urltext));

webView->load(*request, op, body);

谁给讲讲?就是用webView去请求一个地址,然后传一些post数据。还要让webView打开这个地址

参考技术A QUrl url("http://www.baidu.com");

QNetworkRequest request(url);
QByteArray post_data;

post_data.append("testpost1=1111111&");

post_data.append("testpost2=222222&");

ui->webview->load(request,QNetworkAccessManager::PostOperation,post_data);
这样webview就会用post打开,post数据post_data到http://www.baidu.com
Haha,So easy~~~

如何使用Qt进行post get模拟登录

参考技术A

首先你需要使用到以下几个类:

class QNetworkAccessManager;// http网络处理对象

class QNetworkReply;    // http返回应答处理的

calss QNetworkRequest; // 发送http协议请求的

简单举个例子

    用户名和密码添加post内容中
    QString strUserInfo = QString("uname=%1&pwd=%2").arg(editUser->text()).arg(editPassword->text());

    QByteArray  content =  strUserInfo.toUtf8();
    int contentLength = content.length();
    
    QNetworkRequest netReq;
    netReq.setUrl(QUrl("you http server addr"));
    netReq.setHeader(QNetworkRequest::ContentTypeHeader, "application/x-www-form-urlencoded");
    netReq.setHeader(QNetworkRequest::ContentLengthHeader, contentLength);

    // 将用户名和密码发送至web服务器进行验证
    QNetworkAccessManager *m_manager = new QNetworkAccessManager(this);
    // 发送参数
    m_manager->post(netReq, content);
    connect(m_manager, SIGNAL(finished(QNetworkReply*)), this, SLOT(SltLoginReplay(QNetworkReply*)));

以上是关于QT中 如何让webView发送post请求?的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 JQuery 重定向,加载另一个页面但在请求中发送了一些 POST 参数?

QT 5.8 Webview 如何进行请求以及如何拦截它?

如何使用Qt进行post get模拟登录

C ++ Qt - 仅在最后一个回复完成后发送POST请求

如何拦截webview的post请求

如何使用 Python 检索 POST 请求的数据内容?