在Qt中设置要发送到服务器的请求字段

时间:2017-08-01 08:57:09

标签: node.js qt request sails.js

我有一个允许用户输入用户名和密码的软件,然后提交一个发送到我的 sailsjs 服务器的请求,我想用req.username和{{1}来读取它}}

您如何设置请求?目前我只知道如何使用req.password设置标头,其中服务器端将使用QNetworkRequest.setRawHeader("username", username)访问,这不是我想要的。

我这样做是因为我的服务器中已经有一些使用req.headers.username读取用户名的代码,所以我需要找到一种设置req.username字段的方法。但是我想使用Qt从我的客户端做到这一点。任何帮助将不胜感激。提前谢谢。

1 个答案:

答案 0 :(得分:1)

jsonString

中传递用户名和密码
// Build your JSON string as usual
QByteArray jsonString = "{\"method\":\"AuthenticatePlain\",\"loginName\":\"username@domain.com\",\"password\":\"mypass\"}";

// For your "Content-Length" header
QByteArray postDataSize = QByteArray::number(jsonString.size());

// Time for building your request
QUrl serviceURL("https://www.superService.com/api/1.7/ssapi.asmx");
QNetworkRequest request(serviceURL);

// Add the headers specifying their names and their values with the following method : void QNetworkRequest::setRawHeader(const QByteArray & headerName, const QByteArray & headerValue);
request.setRawHeader("User-Agent", "My app name v0.1");
request.setRawHeader("X-Custom-User-Agent", "My app name v0.1");
request.setRawHeader("Content-Type", "application/json");
request.setRawHeader("Content-Length", postDataSize);

// Use QNetworkReply * QNetworkAccessManager::post(const QNetworkRequest & request, const QByteArray & data); to send your request. Qt will rearrange everything correctly.
QNetworkReply * reply = m_qnam->post(request, jsonString);

Correct format for HTTP POST using QNetworkRequest