qt怎么接收post数据_Qt4.8 如何组建正确HTTP post请求数据包?

if ( m_pNetworkManager == NULL ) return false;

QNetworkRequest    networkRequest;

networkRequest.setUrl( QUrl( WEB_URL + strUrl ) );

networkRequest.setHeader( QNetworkRequest::ContentTypeHeader, QVariant( "application/json" ) );

if ( !m_pUser->m_strToken.isEmpty() )

networkRequest.setRawHeader( QByteArray( "Auth-Token" ), m_pUser->m_strToken.toUtf8() );

networkRequest.setRawHeader( QByteArray( "Client-Version" ), QByteArray( "1" ) );

QNetworkReply *pReply = m_pNetworkManager->post( networkRequest, strJson.toUtf8() );

SyncHttp();

if ( pReply == NULL || QNetworkReply::NoError != pReply->error() )

{

qDebug() << pReply->errorString();

m_strError = pReply->readAll().data();

return QString( "" );

}

//返回的数据

QString strR = pReply->readAll().data();

pReply->deleteLater();

return strR;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
qthttpclient2.zip是一个可在Qt框架中使用的网络客户端库。它提供了一组方法来实现Qt网站请求,并支持GET和POST请求方式。 在Qt中,使用QNetworkAccessManager类可以发送GET和POST请求。GET请求是从服务器获取数据,而POST请求是将数据发送到服务器。 GET请求的实现如下: ``` QNetworkAccessManager *manager = new QNetworkAccessManager(this); QNetworkReply *reply = manager->get(QNetworkRequest(QUrl("http://example.com"))); connect(reply, &QNetworkReply::finished, [reply]() { if (reply->error() == QNetworkReply::NoError) { QByteArray data = reply->readAll(); // 处理获取到的数据 } else { // 处理错误 } reply->deleteLater(); }); ``` 在以上代码中,我们首先创建了QNetworkAccessManager对象,然后使用get()方法发起GET请求,并传入目标网址。接下来,我们连接QNetworkReply的finished信号,用于处理请求完成后的结果。如果没有错误发生,我们通过readAll()方法读取服务器返回的数据并进行处理。 POST请求的实现比GET请求稍微复杂一些。在POST请求中,我们需要先构建一个QByteArray类型的数据,并将其作为参数传入post()方法中。以下是一个示例: ``` QNetworkAccessManager *manager = new QNetworkAccessManager(this); QByteArray postData; // 构建postData数据 QNetworkRequest request(QUrl("http://example.com")); request.setHeader(QNetworkRequest::ContentTypeHeader, "application/x-www-form-urlencoded"); QNetworkReply *reply = manager->post(request, postData); connect(reply, &QNetworkReply::finished, [reply]() { if (reply->error() == QNetworkReply::NoError) { QByteArray data = reply->readAll(); // 处理获取到的数据 } else { // 处理错误 } reply->deleteLater(); }); ``` 在以上代码中,我们首先创建一个空的QByteArray对象postData,然后利用需要发送的数据填充它。然后,我们创建一个QNetworkRequest对象,并设置请求的URL和Content-Type头信息。最后,我们使用post()方法将请求发送给服务器。 总结来说,qthttpclient2.zip是一个Qt网络客户端库,可用于发送GET和POST请求。无论是GET请求还是POST请求,我们都需要使用QNetworkAccessManager类来实现,并处理返回结果。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值