Net::HTTP extremely slow responses for HTTPS requests

感情迁移 提交于 2019-12-10 13:55:12

问题


For some reason, on my development machine I'm getting very, very slow responses for HTTPS requests performed via Net::HTTP. I've tried RestClient and HTTParty and they both have the same issue. It seems to have sprung from nowhere. I've made these requests hundreds of times without issue, but today they are unbearably slow.

pry(main)> puts Time.now; HTTParty.get('https://api.easypost.com/v2/addresses'); puts Time.now;
2015-04-29 08:07:08 -0500
2015-04-29 08:09:39 -0500

As you can see, the response took 2.5 minutes. And it's not just this EasyPost API URL. I've tried numerous SSL requests to servers I know I can connect to (https://google.com, https://weather.com, etc.) and they all result in the same behavior. Also, I noticed that the same thing happens for requests that are redirected from HTTP to HTTPS. Now, check out a non-ssl request:

pry(main)> puts Time.now; HTTParty.get('http://lookitsatravis.com'); puts Time.now;
2015-04-29 08:12:22 -0500
2015-04-29 08:12:22 -0500

Instantaneous. What gives? My guess it is some configuration problem somewhere between Ruby and OpenSSL. I've reinstalled both (using Ruby 2.2.1 and OpenSSL 1.0.2a) and I'm using OS X Yosemite 10.10.2 for what it's worth. Reinstalled all my gems, but the problem persists. I tried changing my DNS settings just in case, but no dice. Is there anywhere else I can look or any configuration I can change that will fix this issue?


回答1:


The issue was not Ruby or OpenSSL or any of the above libraries. The problem is that IPv6 addresses were not resolving on my MacBook. DNS lookup returned the IPv6 address first, so the libraries tried to connect to that until it timed out and then they connected to the IPv4 addresses which worked just fine.

Disabling IPv6 for OS X Yosemite 10.10.2 worked for me. It's not ideal, but until I can determine another solution, it works.

networksetup -setv6off "Wi-Fi"

Thanks @SteffenUllrich for pointing me in that direction.




回答2:


What solved the problem for me was disabling the Antivirus



来源:https://stackoverflow.com/questions/29945204/nethttp-extremely-slow-responses-for-https-requests

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!