我正在尝试使用https get从bigquery get服务器获取数据集列表
遵循这里的文档: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。
发布于 2013-03-28 08:22:26
请参阅上面的原始帖子的注释中的答案-但基本上要确保您使用的是GET而不是POST方法来调用API以列出数据集。其他的BigQuery应用编程接口方法使用POST、PUT或PATCH。
https://developers.google.com/bigquery/docs/reference/v2/datasets/list
https://stackoverflow.com/questions/14895588
复制相似问题