![](/img/trans.png)
[英]EHOSTUNREACH error while sending HTTP request from Hubot to Rails app locally
[英]HTTP::ConnectionError & Errno::EHOSTUNREACH Errors in Rails App
我正在使用Rails應用程序,這是我嘗試在數據庫中播種數據時收到的兩個重要錯誤消息:
HTTP :: ConnectionError:連接失敗:操作超時-SSL_connect
Errno :: ETIMEDOUT:操作超時-SSL_connect
這是我的代碼,在這里我從文件中提取數據並創建Politician對象:
politician_data.each do |politician|
photo_from_congress = "https://theunitedstates.io/images/congress/original/" + politician["id"]["bioguide"] + ".jpg"
HTTP.get(photo_from_congress).code == 200 ? image = photo_from_congress : image = "noPoliticianImage.png"
Politician.create(
name: "#{politician["name"]["first"]} #{politician["name"]["last"]}",
image: image
)
end
我撬了一下,迭代在第一個循環中起作用,因此代碼正常。 幾秒鍾后,循環中斷,並且出現該錯誤,所以我認為這與我發出的HTTP.get請求數量有關?
https://github.com/unitedstates/images是一個Git倉庫。 也許那個倉庫不能處理那么多的獲取請求?
我做了一些Googleinging,發現它可能與“請求超時”錯誤有關? 我必須設置代理服務器嗎? 我是一名初級程序員,因此在回復時請非常具體。
*編輯添加此內容 :
我在正在請求刪除照片的網站( https://github.com/unitedstates/images )上發現了這個問題,這可能會有所幫助嗎?
注意:我們的HTTPS永久鏈接是通過CloudFlare的通用SSL提供的,該通用SSL還使用“ Flexible SSL”與GitHub Pages的未加密端點進行對話。 因此,您應該知道這不是一個端到端的加密通道,而是在客戶端使用和CloudFlare服務器之間加密的(至少應該將您的請求與客戶端IP地址分離)。
順便說一句,使用“ Net :: HTTP”而不是“ HTTP” Ruby gem可以正常工作。 我沒有檢查狀態碼,而是檢查主體是否包含關鍵文本:
photo_from_congress = "https://theunitedstates.io/images/congress/original/" + politician["id"]["bioguide"] + ".jpg"
photo_as_URI = URI(photo_from_congress)
Net::HTTP.get_response(photo_as_URI ).body.include?("File not found") ? image = "noPoliticianImage.png" : image = photo_from_congress
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.