1

urlRailsコントローラーで、ユーザーが入力したURL(たとえば、変数内にある)にリクエストを送信し、応答が50Xでないことを確認して検証したいと思います。どうやってやるの?

4

2 に答える 2

1

Net::Http次のようにモジュールを使用してコントローラーからリクエストを送信できます

uri = URI('http://festivalsherpa.com')
response = Net::HTTP.get_response(uri)

response.to_hash["status"] will return you proper response code
于 2012-11-24T05:56:43.310 に答える
0

もう1つの方法があります

次のような、より意味のある方法で行うことができます。

uri = URI.parse(your_url)
connection = Net::HTTP.new(uri.host)
request = Net::HTTP::Get.new(uri.request_uri) # For post req, you can replace 'Get' by  'Post'
response = connection.request(request)

あなたは何が返されるかを見ることができます:

p response.body

返される応答がJSONの場合は、次のことができます。

JSON.parse(response.body)  #It will give you hash object

応答コード/ステータスを確認できます

  p response.code

ステータスコードを処理する場合は、caseステートメントを使用して処理できます

case response.code
 when "200"
     <some code>
 when "500"
     <some code>
 end

等々..

于 2012-11-24T06:46:37.373 に答える