2017-11-17 3 views
1

私は靴のGUIビルダーを使用していますが、私は要求を行うとき、私は私の地元のRailsサーバー靴Rbのホスト名知られていない:sub.localhost:3000

に、単純なHTTPリクエストを作るとき、私は以下のエラーを取得する

res = Net::HTTP.get(URI.parse("http://sub.localhost:3000")) 

私はエラーを取得する:

Hostname not known: sub.localhost 
/Applications/Shoes.app/Contents/MacOS/lib/ruby/2.2.0/resolv-replace.rb:12:in `rescue in getaddress' 
/Applications/Shoes.app/Contents/MacOS/lib/ruby/2.2.0/resolv-replace.rb:9:in `getaddress' 
/Applications/Shoes.app/Contents/MacOS/lib/ruby/2.2.0/resolv-replace.rb:23:in `initialize' 
/Applications/Shoes.app/Contents/MacOS/lib/ruby/2.2.0/net/http.rb:879:in `open' 
/Applications/Shoes.app/Contents/MacOS/lib/ruby/2.2.0/net/http.rb:879:in `block in connect' 
/Applications/Shoes.app/Contents/MacOS/lib/ruby/2.2.0/timeout.rb:73:in `timeout' 
/Applications/Shoes.app/Contents/MacOS/lib/ruby/2.2.0/net/http.rb:878:in `connect' 
/Applications/Shoes.app/Contents/MacOS/lib/ruby/2.2.0/net/http.rb:863:in `do_start' 
/Applications/Shoes.app/Contents/MacOS/lib/ruby/2.2.0/net/http.rb:852:in `start' 
/Applications/Shoes.app/Contents/MacOS/lib/ruby/2.2.0/net/http.rb:1375:in `request' 
shoes.rb:24:in `request' 
shoes.rb:63:in `block (3 levels) in <main>' 
-e:1:in `call' 
/Applications/Shoes.app/Contents/MacOS/lib/ruby/2.2.0/resolv-replace.rb:12:in `rescue in getaddress' 
/Applications/Shoes.app/Contents/MacOS/lib/ruby/2.2.0/resolv-replace.rb:9:in `getaddress' 
/Applications/Shoes.app/Contents/MacOS/lib/ruby/2.2.0/resolv-replace.rb:23:in `initialize' 
/Applications/Shoes.app/Contents/MacOS/lib/ruby/2.2.0/net/http.rb:879:in `open' 
/Applications/Shoes.app/Contents/MacOS/lib/ruby/2.2.0/net/http.rb:879:in `block in connect' 
/Applications/Shoes.app/Contents/MacOS/lib/ruby/2.2.0/timeout.rb:73:in `timeout' 
/Applications/Shoes.app/Contents/MacOS/lib/ruby/2.2.0/net/http.rb:878:in `connect' 
/Applications/Shoes.app/Contents/MacOS/lib/ruby/2.2.0/net/http.rb:863:in `do_start' 
/Applications/Shoes.app/Contents/MacOS/lib/ruby/2.2.0/net/http.rb:852:in `start' 
/Applications/Shoes.app/Contents/MacOS/lib/ruby/2.2.0/net/http.rb:1375:in `request' 
shoes.rb:24:in `request' 
shoes.rb:63:in `block (3 levels) in <main>' 
-e:1:in `call' 

私のhostsファイルには127.0.0.1 sub.localhostを持って、私はアドレスに到達し、それに対して何の問題の要求をしないだけではない靴のプロジェクトにすることができます。

私はthis質問のアドバイスに従って、私のローカルIPアドレスex 123.12.12.1を結合したが、

ThisHostname not known: sub.123.12.12.1は靴のプロジェクトにラインresolv-replace.rb:9:inを削除すると、同じエラーを取得しますが、私は同じエラーを取得しHostname not known: sub.123.12.12.1

私はMac上にいる

+0

私はこれを見ました... – SoEzPz

答えて

1

custom DNS resolverを使用して、Rubyがhostsファイルを確認するようにしてください:

require 'resolv-replace' 

hosts_resolver = Resolv::Hosts.new('custom_hosts') 
dns_resolver = Resolv::DNS.new 

Resolv::DefaultResolver.replace_resolvers([hosts_resolver, dns_resolver]) 

require "net/http" 
require "uri" 

res = Net::HTTP.get(URI.parse("http://sub.localhost:3000")) 

今すぐNet::HTTPは、hostsをチェックしてカスタムドメインを正常に解決するカスタムリゾルバを使用します。

+0

これは完璧です。私はあなたがここにもう少し早く行きたいと思っています。私はそれを動作させるために 'ngrok'を支払ってしまいました。 ha。 – teddybear

関連する問題