google-bigquery如何使用https获取datasetlist?
问题描述:
我试图从Web服务器的BigQuery以https得到google-bigquery如何使用https获取datasetlist?
获得数据集列表中的文档,这里以下内容: https://developers.google.com/bigquery/docs/reference/v2/datasets/list
我使用稍微修改代码:
http://code.google.com/p/qt-google-bigquery/source/browse/manager_bigquery.cpp
getDatasetsList(QString strProjectID)
{
QString url = QString("https://www.googleapis.com/bigquery/v2/projects/%1/datasets?key=%2").arg(str_ProjectID).arg(this->api_key);
//Also tried without ?key= part
QNetworkRequest request;
request.setUrl(QUrl(url)); //this also urlencodes
request.setRawHeader("Content-Type", "application/json");
request.setRawHeader("Authorization", (QString("Bearer %1").arg(m_Access_Token)).toLatin1());
//here i post the request as a http get asynchronously
}
我回来这个错误信息:
Reply = "{
"error": {
"errors": [
{
"domain": "global",
"reason": "required",
"message": "Required parameter is missing"
}
],
"code": 400,
"message": "Required parameter is missing"
}
}
注意:
我设法运行一个查询并得到结果,所以我的访问令牌似乎是有效的,我在这里做错了什么?
解决
啊,其实这个问题是在我的编码,而不是要求,我张贴作为一个HTTP POST,而不是GET。
答
请参阅上述原始海报的评论回答 - 但基本上确保您使用GET而不是POST方法来调用API来列出数据集。其他BigQuery API方法使用POST,PUT或PATCH。
https://developers.google.com/bigquery/docs/reference/v2/datasets/list
是否可以为你检查HTTP请求的原始信息,并张贴在这里? – 2013-02-19 23:01:21
嘿Attila,在下面的方框中发布您的“答案”,以便我们可以将其标记为已回答并给您一些观点:-) – 2013-03-19 10:38:51