2016-09-17 8 views
0

私はRails 4.2.7を使用しています。リクエスト時にステータスコードを取得するにはどうすればよいですか?私は以下を試していますRoRでは、プロキシを介してWebページをリクエストするときにステータスコードを取得するにはどうすればよいですか?

uri = URI(url) 
    content = nil 
    status = nil 
    content_type = nil 
    res1 = Net::HTTP.SOCKSProxy('127.0.0.1', 50001).start(uri.host, uri.port) do |http| 
    puts "launching #{uri.path}" 
    resp = http.get(uri.path) 
    status = resp.status 
    content = resp.content 
    content_type = resp['content-type'] 
    end 

しかし、その結果、以下のエラーが発生します。私はあなたがresp.codeをしたいと思う私は、その403をはっきりと見ることができますが、私は、私は

Error during processing: undefined method `status' for #<Net::HTTPForbidden 403 Forbidden readbody=true> 
/Users/davea/Documents/workspace/myproject/app/helpers/webpage_helper.rb:77:in `block in get_content' 
/Users/davea/.rvm/rubies/ruby-2.3.0/lib/ruby/2.3.0/net/http.rb:853:in `start' 
/Users/davea/.rvm/rubies/ruby-2.3.0/lib/ruby/2.3.0/net/http.rb:584:in `start' 
/Users/davea/Documents/workspace/myproject/app/helpers/webpage_helper.rb:74:in `get_content' 

答えて

0

をキャッチすることができ素晴らしく、きちんとした変数の中、または少なくともエラーのいくつかの種類を持っていることを持っていると思います。

1つの方法は、pry gemを使用することです。インストールしたらhttp.get行の直後にbinding.pryを置き、コードを実行できます。それがプライスラインに当たると、実行を停止し、IRBプロンプトを開いて、respで別のものを試してみることができます。 1つの本当に気の利いた機能は、cd respであり、オブジェクト自体の中にあることができます。 lsと入力すると、使用可能なすべてのメソッドが表示されます。このようなことをもっと簡単に理解できるようにします。

関連する問題