簡體   English   中英

Axios GET 請求為某些 URL 返回 ECONNRESET

[英]Axios GET request returning ECONNRESET for some URLs

我正在開發一個應用程序,該應用程序使用快速服務器聯系 API 以獲取數據。 在我們的組織中,出站流量需要一個代理,我將其供應給 axios,如下所示(不是真實的):

let response = await axios.get(endpointUrl, {
    proxy: {
        host: "123.45.678.90",
        port: 0000,
    },
})

將各種 URL 傳遞到 axios get function 返回不同的結果,以下 URL 返回結果:

而以下 URL 幾乎立即返回 ECONNRESET 錯誤:

我在可用/不可用的 URL 之間看不到任何模式,所以想知道是否有新的眼睛可以發現它們中的特征? 重要的是要注意所有這些 URL 在瀏覽器中都成功返回,只是通過這個 axios 調用才是問題所在。

更神秘的是,在我的機器上工作的 URL,在我們組織外的機器上工作——所以可能有線索嗎?

當然,任何幫助/指導將不勝感激,謝謝。

這個錯誤僅僅意味着對方以一種可能不正常的方式(或者可能是匆忙)關閉了連接。

例如,一個套接字連接可能由於各種原因被對方突然關閉,或者您可能在運行應用程序時丟失了 wifi 信號。 然后你會在你這邊看到這個錯誤/異常。

也可能是這種情況:在隨機時間,另一端過載並因此簡單地終止連接。 如果是這樣的話,取決於你連接的到底是什么……

解決方案 - 發生這種情況是因為您沒有收聽/處理“錯誤”事件。 要解決此問題,您需要實現一個可以處理此類錯誤的偵聽器。

如果在您的機器上工作的 URL 在您的組織之外也工作,而另一個不工作,則很可能是您的代理有問題。

某些代理可能具有使它們刪除標頭或以目標未按預期接收請求的方式更改請求的配置。

我也遇到過一次 axios 和代理的問題。 我必須切換庫才能使其工作。 可以肯定的是,我會建議使用像“請求”(已棄用)juste 這樣的庫,以確保它不是 axios 的問題。axios 存儲庫中有多個未解決的代理問題。

ECONNRESET 很可能發生,因為代理遇到某種錯誤並斷開連接,或者目標主機發現傳入連接有問題並決定立即斷開連接。

該目標主機可能由於代理而發現問題,或者它可能期望請求中的某些內容丟失。

由於您有證據表明從不同位置(而不是通過您的代理)運行時所有請求都可以正常工作,並且我可以確認您的代碼在我的位置(也沒有通過您的代理運行)運行正常,所以看起來確實是證據點在您的代理服務器上導致某些請求出現問題。

調試此類代理問題的一種方法是通過代理運行一個請求,該請求最終會到達您可以調試的某個服務器,並准確查看代理對傳入請求所做的操作,與對同一主機的請求相比't go 通過代理。 這有望突出一些差異,然后您可以測試這些差異是否導致問題,然后最終處理代理的配置以更正。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM