qt - QNetworkReply::RemoteHostClosedError
问题描述
我正在学习 Github API,并想通过 Qt 在 github 上创建一个问题。
但是,当我提交问题时,“调试控制台”说
QNetworkReply::RemoteHostClosedError
(我发现了错误)。
我不知道为什么,请帮助我!
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();
});
}
解决方案
与您的代码相比,它将标头设置为"application/json"
.
它使用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);
推荐阅读
- node.js - NodeJS:数组不保存
- visual-studio - Power BI 视觉对象不会绘图或显示我添加的格式选项
- javascript - 为什么 jQuery(document).on('click... 不注册对特定 div 的点击?
- mysql - mysql sum group by month and date using a contract start and end date
- google-sheets - 如果满足单元格值的条件,则返回所有对行/列的列表
- node.js - 在 Docker 容器中开发 Node.js 应用程序
- java - GlassFish 无法识别特定的 servlet
- intellij-idea - 想法 - 保存差异结果
- javascript - 从承诺中返回数据然后链
- c# - Winows 安装程序 (wix) 安装产品两次