google-bigquery 如何使用 https 获取数据集列表?
Posted
技术标签:
【中文标题】google-bigquery 如何使用 https 获取数据集列表?【英文标题】:google-bigquery how to get datasetlist with https get? 【发布时间】:2013-02-15 13:15:18 【问题描述】:我正在尝试使用 https get 从 bigquery 网络服务器获取数据集列表
按照此处的文档: 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 帖子,而不是 get。
【问题讨论】:
您是否可以检查原始 HTTP 请求信息并将其发布在此处? Hey Attila,在下面的框中发布您的“答案”,以便我们将其标记为已回答并给您加分 :-) 【参考方案1】:请参阅上面原始海报的评论中的答案 - 但基本上请确保您使用 GET 而不是 POST 方法进行 API 调用以列出数据集。其他 BigQuery API 方法使用 POST、PUT 或 PATCH。
https://developers.google.com/bigquery/docs/reference/v2/datasets/list
【讨论】:
以上是关于google-bigquery 如何使用 https 获取数据集列表?的主要内容,如果未能解决你的问题,请参考以下文章
如何同步调用 google-bigquery 删除和插入 API?
如何在没有授权令牌的情况下从 python 脚本查询 google-bigquery 中的私有表?