我有一个继承的VB6程序,每天早上运行以下载多个客户端的Google Analytics Feed数据。该过程执行以下操作:
检查我当前的OAuth 2.0 Access Token
(从昨天起保存在我的数据库中)是否已过期,如果是,则获取新的。当然,当程序每天第一次运行时,它会获得一个新的Access Token
。
对于每个客户,请发布Feed数据请求。
处理从Google服务器收到的XML数据。
我的问题在于上面的第2步。使用新Access Token
的第一篇帖子总是因400 Bad Request错误而失败。使用完全相同的数据发表第二篇文章总是成功,我的程序可以转到第3步。
以下是我的POST示例(在Access Token
括号中包含客户ID和[ ]
):
https://www.google.com/analytics/feeds/data?
ids=ga%3A[Client Id]&
start-date=2016-01-10&
end-date=2016-01-10&
metrics=ga%3Asessions%2Cga%3Atransactions%2Cga%3AtransactionRevenue&
dimensions=ga%3Amedium%2Cga%3Asource%2Cga%3Akeyword&
filters=ga%3Asource%3D%3Dshopping&
access_token=[Access Token]
这种情况已持续数周。
我的代码中的错误描述(Err.Description)是“400 Bad Request”。来自Google服务器的整个响应(较少的HTML)是“400.这是一个错误。您的客户发出了格式错误或非法的请求。这就是我们所知道的。”
任何人都可以就第一个请求失败的原因提出任何建议,但后续请求却没有?我甚至在获取新Access Token
和发出第一个数据请求之间建立了五分钟的延迟,但仍然得到400错误请求错误。
非常感谢您提供的任何帮助。
感谢。
答案 0 :(得分:0)
使用Fiddler(谢谢M Schenkel)我终于能够找到问题的根源。
我的VB6程序正在使用IP * WORKS!来自nsoftware的SSL组件。该表单有一个HTTPS组件,用于(1)获取新的访问令牌,然后(2)获取源数据。
Fiddler表示该组件的第二次使用是使用了第一次使用它时的一些参数。
我在表单中添加了第二个HTTPS组件,因此我的Feed数据请求将从一个空白的平板开始,并且有效。
非常感谢你的帮助!