[英]QNetworkReply::RemoteHostClosedError
I was learning the Github API and wanted to create an Issue on github by Qt.我正在学习 Github API 并想在 github 上由 ZE8801102A40AD89DDFCFDCAEZ00 创建一个问题。
But, when I submit my Issue, the "Debug Console" said但是,当我提交问题时,“调试控制台”说
QNetworkReply::RemoteHostClosedError
(I catched error). (我发现了错误)。
I don't know why, please help me!我不知道为什么,请帮助我!
void MainWindow::on_pushButton_2_clicked()
{
QString id = ui->ID_Send->text();
QJsonObject JJ;
QJsonDocument jd;
JJ["title"] = ui->Title->text();
JJ["body"] = ui->Comment->toPlainText();
QHttpMultiPart *part = new QHttpMultiPart(QHttpMultiPart::FormDataType);
QHttpPart info;
info.setHeader(QNetworkRequest::ContentTypeHeader, QVariant("text/json"));
jd.setObject(JJ);
info.setBody(jd.toJson());
part->append(info);
QNetworkRequest request;
qDebug()<<"https://api.github.com/repos/MoyuSteve/Comment/issues?client_id="+
client_id+"&client_secret="+client_secret;
request.setUrl(QUrl("https://api.github.com/repos/MoyuSteve/Comment/issues?client_id="+
client_id+"&client_secret="+client_secret));
QNetworkReply* reply = manager->post(request,part);
QObject::connect(reply, &QNetworkReply::finished, [reply, this] () {
if (reply->error() == QNetworkReply::NoError) {
ui->status->setText("ok");
} else {
ui->status->setText("failed");
qDebug()<<reply->error();
}
reply->deleteLater();
});
}
You can take example in this answer or here .您可以在这个答案或这里举个例子。
Compared to your code, it sets the header to "application/json"
.与您的代码相比,它将 header 设置为"application/json"
。
And it uses a QNetworkAccessManager to send network requests and receive replies.它使用QNetworkAccessManager发送网络请求和接收回复。
QUrl url("https://api.github.com/repos/" + owner +"/" + project + "/tags");
qInfo() << url.toString();
QNetworkRequest request(url);
request.setHeader(QNetworkRequest::ContentTypeHeader, "application/json");
QNetworkAccessManager nam;
QNetworkReply * reply = nam.get(request);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.