c++ - 谷歌上的 Qt http 错误请求

标签 c++ api qt httprequest

我正在尝试使用谷歌的 url shortener api ( https://developers.google.com/url-shortener/v1/getting_started#shorten ) 创建一个 url shortener 应用程序。问题是我收到一个错误的请求。 这是错误: 错误:下载错误https://www.googleapis.com/urlshortener/v1/url - 服务器回复:错误请求

我做错了什么? 这是代码:

void MainWindow::ppp(QString longurl)
{
    QNetworkAccessManager* manager = new QNetworkAccessManager(this);
    connect(manager, SIGNAL(finished(QNetworkReply *)), this, SLOT(replyFinished(QNetworkReply *)));

    QUrl url = QUrl("https://www.googleapis.com/urlshortener/v1/url");

    QNetworkRequest request(url);
    request.setHeader(request.ContentTypeHeader,"application/json");

    QByteArray postData;
    postData.append("longUrl");
    postData.append(longurl);


    manager->post(request,postData);
}

void MainWindow::replyFinished(QNetworkReply *reply)
{
    if(reply->error() != QNetworkReply::NoError)
    {
        ui->textBrowser->setText("Error: " +  reply->errorString());
    }
    else
    {
        QByteArray responseData = reply->readAll();
        QString qstr(responseData);
        ui->textBrowser->setText(qstr);
    }
}

最佳答案

您必须以 json 格式发送您的帖子数据。

要使您的代码正常工作,请替换

QByteArray postData;
postData.append("longUrl");
postData.append(longurl);

有了这个

QByteArray postData;
postData.append("{\"longUrl\": \""+longurl+"\"}");

关于c++ - 谷歌上的 Qt http 错误请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17828606/

相关文章:

python - 编程从 Bloomberg 终端获取数据

php - 如何阻止人们向 PHP API 发出大量请求?

c++ - Qt5上的静态库 : Undefined symbols for architecture x86_64:

c++ - 必须在传递给 C 运行时函数的 QWidget 和无效参数之前构造 QApplication

java - 创建 Java native 接口(interface)的问题

c++ - 我可以制作两个 std::ostream-s 的 std::pair 吗?

php - 保护无 session RESTful API 端点

c++ - QT中如何从json中加载base64图片数据

c++ - 相当于Boost.Format的C++ 11

c++ - boost::mutex 和 boost::timed_mutex 的性能差异