【问题标题】:Getting connect ETIMEDOUT for Axios HTTP Get Request获取 Axios HTTP 获取请求的连接 ETIMEDOUT
【发布时间】:2021-03-09 03:08:39
【问题描述】:

所以我有一个调用 Microsoft Maps API 的 Azure 函数,它(有时)工作。但是有时它会在请求期间引发此错误。请指教。

我的代码:

const options = 
{
   host: 'atlas.microsoft.com', //added this later
   headers: { 'x-ms-client-id': client_id }
}

//url to get lat/long
let url = 'https://atlas.microsoft.com/search/fuzzy/json?api-version=1.0&subscription-key=' + subscription_key + '&query=' + address + ' USA'

//make req
let res = await axios.get(url, options)

响应/错误:

{
"error": {
"message": "connect ETIMEDOUT XX.XXX.XX.XX:XXX",
"name": "Error",
"stack": "Error: connect ETIMEDOUT XX.XXX.XX.XX:XXX\n    at TCPConnectWrap.afterConnect [as oncomplete] (net.js:1141:16)",
"config": {
  "url": "https://atlas.microsoft.com/search/fuzzy/json?api-version=1.0&subscription-key=myKey&query=myQuery",
  "method": "get",
  "headers": {
    "Accept": "application/json, text/plain, */*",
    "x-ms-client-id": myClientID,
    "User-Agent": "axios/0.19.2"
  },
  "transformRequest": [
    null
  ],
  "transformResponse": [
    null
  ],
  "timeout": 0,
  "xsrfCookieName": "XSRF-TOKEN",
  "xsrfHeaderName": "X-XSRF-TOKEN",
  "maxContentLength": -1,
  "host": "atlas.microsoft.com"
},
"code": "ETIMEDOUT"
  }
}

【问题讨论】:

    标签: node.js http axios azure-functions


    【解决方案1】:

    我的超时问题的解决方案是添加

    host:'atlas.microsoft.com
    

    进入我所有通话的标题。 99% 的连接错误消失了。我还联系了 Mircosoft 支持,他们说无论您使用的是 S0 还是 S1,都没有限制,所以这不会有什么不同。目前支持人员正在调查为什么将主机部分添加到请求标头中会产生如此大的差异。稍后将更新他们的回复。

    我问了一个类似的问题并想出了here一些额外的细节。

    【讨论】:

      【解决方案2】:

      我看到你的请求 url 有subscription-key,我想你不再需要options了。

      根据我的测试,您的问题没有重现。我的 Azure Maps 服务的定价层是 S1。所以我猜你的问题的可能原因。

      1.定价层。

      建议:您可以更改定价层级。

      2。 Azure Map服务异常。

      建议:建议在门户中提出支持票,询问该区域是否有任何异常服务,并查看您的服务日志。

      以下是我的测试结果。

      我对其进行了测试,我的测试网址如https://atlas.microsoft.com/search/fuzzy/json?api-version=1.0&query=seattle&subscription-key=WCzM8k*******nnSYn4。我只是通过 chrome 浏览器请求并得到响应。

      我还通过axios 进行了测试,效果很好。

      【讨论】:

      • 我确实打开了请求票,技术人员目前正在调查它。我的电话也可以通过 axios 工作,但并不一致。对于相同的请求,有时它不起作用。我什至通过发出 100 个相同的调用来进行测试,其中 4 个因 ^ 错误而失败。也没有特别的顺序。我将查看定价层,看看它们是并发限制还是一些我不知道的配额。
      • @search-learn 好的,如果有官方技术人员的专业回复,期待与大家分享。
      猜你喜欢
      • 2018-03-01
      • 2020-05-31
      • 2016-05-25
      • 2018-12-26
      • 1970-01-01
      • 2020-07-17
      • 2017-10-26
      • 2018-05-04
      • 1970-01-01
      相关资源
      最近更新 更多