当从黑莓应用程序请求时,API的Heroku响应超时,但不是从cURL请求



我作为一名承包商正在Node.js中开发一个RESTful API,该API目前正被其他承包商编写的几个黑莓应用程序使用。堆栈非常常见:Node、Express和Mongoose,运行在heroku上。

考虑以下API调用:

curl "https://my-app.herokuapp.com/v2/rest/documents/?view=tree&annotate=ratings,accessible"

当一个用Java编写的黑莓应用程序发出这个调用时,它每次都能正常工作。

现在考虑一下这个:

curl "https://my-app.herokuapp.com/v2/rest/documents/?view=tree&annotate=ratings%2Caccessible%2CcontentSize"

当Adobe Air Blackberry应用程序进行此调用时,它通常会收到来自Heroku的HTTP 503,Heroku错误代码为H12,这意味着请求超时。尽管如此,在BB应用程序上,当这种情况发生时,它确实会显示"501错误"。日志显示没有501,只有503。

然而,如果我使用curl对服务器进行相同的调用,则响应是成功的,并且在之后的一段时间内,它在之前遇到问题的同一BB应用程序上也是成功的。就好像响应成功了一样,被缓存在Heroku的一侧,然后缓存了一段时间(这是猜测)。

主要区别在于annotate查询字符串参数中包含了contentSize。但很明显,它并没有太慢,因为当通过curl调用时,它似乎工作得很好。

遗憾的是,我无法访问这两个BB应用程序的源代码,开发人员通常反应很慢,因为这不是他们唯一的项目。

所以我希望So上的某个人可能对这种问题有一些经验,并可能为我指明正确的方向。

谢谢!

有问题的应用程序的规模是否足以防止空转?我特别要求"卷曲然后让BB工作一段时间"。也许BB应用程序试图访问空闲服务时发生了超时?除此之外,我还不确定,但至少这可能是一个开始寻找的好地方。

最新更新