JSON クエリを Web サービスに送信しようとしていますが、クエリへの応答として引き続き内部サーバー エラーが発生します。
これが私が送信しようとしているものです:
POST /api/1.7/webservice.asmx HTTP/1.1
Host: www.superService.com
User-Agent: My app name v0.1
X-Custom-User-Agent: My app name v0.1
Content-Type: application/json
Content-Length:81
{"method":"AuthenticatePlain","loginName":"username@domain.com","password":"mypass"}
これはhttps://www.superService.com/api/1.7/ssapi.asmxに送信されるはずです
を準備する際QNetworkRequest
に、行を挿入するためにどのような方法が使用されますか
POST /api/1.7/webservice.asmx HTTP/1.1 ?
オブジェクトに完全なヘッダーが含まれていQNetworkRequest
ますか?
JSON データをQNetworkRequest
オブジェクトに含める必要がありますか、それともメソッドの 2 番目の引数として投稿に追加されQNetworkAccessManager::post()
ますか?
on_btnLogin_clicked()
スロット内の現在のコードは次のとおりです。
connect(m_qnam, SIGNAL(finished(QNetworkReply*)),
this, SLOT(handleNetworkData(QNetworkReply*)));
connect(m_qnam,SIGNAL(sslErrors(QNetworkReply*,QList<QSslError>)),
this, SLOT(handleSSLErrors(QNetworkReply*)));
QString baseString = "";
baseString.append(QString("POST /api/1.7/webservice.asmx HTTP/1.1\r\n").toUtf8());
baseString.append(QString("www.superService.com\r\n").toUtf8());
baseString.append(QString("User-Agent: My app name v0.1\r\n").toUtf8());
baseString.append(QString("X-Custom-User-Agent: My app name v0.1\r\n").toUtf8());
baseString.append(QString("Content-Type: application/json\r\n").toUtf8());
QString jsonString = QString("{");
jsonString.append("\"method\":");
jsonString.append("\"AuthenticatePlain\"");
jsonString.append(",\"loginName\":");
jsonString.append("\"username@domain.com\"");
jsonString.append(",\"password\":");
jsonString.append("\"mypass\"");
jsonString.append("}");
QByteArray json = jsonString.toUtf8();
baseString.append(QString("Content-Length:").toUtf8());
baseString.append(QString::number(json.length()));
baseString.append("\r\n").toUtf8();
baseString.append(QString("\r\n").toUtf8());
baseString.append(json);
request = QNetworkRequest(QUrl("https://www.superService.com/api/1.7/ssapi.asmx"));
request.setRawHeader()
qDebug() << "Base String: "<< baseString;
m_qnam->post(request,baseString.toUtf8());