HTTPartyを使用してリクエストを行う前にAPI URLが存在するかどうかを確認する方法を探しています。現在、URLが存在しない場合、HTTParty要求エラー。Railsどのようにプルする前にAPIリクエストのURLを確認する
私はこのCheck if URL exists in Ruby次試してみました:私は存在しないものにURLを変更した場合など、
<%= @check.inspect %>
#<Net::HTTPOK 200 OK readbody=true>
:しかし
http://api.meeeeeetup.com/LA-Computer-Science-Reading-Group/events?photo-host=public&page=20&sig_id=215634693&sig=0be729af948c1a17ce5f35faa9fcedd5ae22de56`
api_url = "http://api.meetup.com/LA-Computer-Science-Reading-Group/events?photo-host=public&page=20&sig_id=215634693&sig=0be729af948c1a17ce5f35faa9fcedd5ae22de56"
require "net/http"
url_request = URI.parse(api_url)
req = Net::HTTP.new(url_request.host, url_request.port)
res = req.request_head(url_request.path)
@check = res
response = HTTParty.get(api_url)
ビューをページ静止エラーgetaddrinfo: nodename nor servname provided, or not known
また、私が確認したいURLリクエストは、XML要求は次のとおりです。
http://api.indeed.com/ads/apisearch?publisher=#{publisher_key}&q=java&l=austin%2C+tx&sort=&radius=&st=&jt=&start=&limit=&fromage=&filter=&latlong=1&co=us&chnl=&userip=&useragent=&v=2
と上記のアイデアを使用して、このAPIのURLが成功したコールを返しません。代わりに#<Net::HTTPMethodNotAllowed 405 Method Not Allowed readbody=true>
を返します。
ブラウザをエミュレートして結果を確認したり、HTTPartyリクエストの前にAPI URLリクエストの正当性を確認する方法が簡単でないかどうかはわかりません。
なぜ簡単にリクエストを行い、無効なURLが見つからないのですか? –
@Joel_Blum HTTPartyの無効なURLを渡すと、getaddrinfo:nodenameもservnameが指定されていない、または知られていないとエラーが発生し、アプリケーションが中断されます。私はどのようにそのエラーをキャッチするか、HTTPartyが失敗する前にURL応答をチェックする方法があるかどうかはわかりません。 – teresa
URLの正当性を確認できます。エンドポイントが存在することを確認することとは異なります*。しかし、あなたの「無効な」URLの例は無効なURLではなく、単に存在しません。 http://stackoverflow.com/a/26768085/438992 –