QNetworkReply :: RemoteHostClosedError - PullRequest
       32

QNetworkReply :: RemoteHostClosedError

0 голосов
/ 10 апреля 2020

Я изучал Github API и хотел создать проблему на github с помощью Qt.

Но, когда я отправляю свою проблему, консоль отладки сказала

QNetworkReply::RemoteHostClosedError

( Я поймал ошибку).

Не знаю почему, пожалуйста, помогите мне!

Код на Github :

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();
    });
}

1 Ответ

0 голосов
/ 10 апреля 2020

Вы можете взять пример в этом ответе или здесь .

По сравнению с вашим кодом он устанавливает заголовок на "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);
...