2017-05-15 12 views
1

My RailsアプリケーションはパートナーのICSファイルを定期的にポーリングし、何らかの理由で失敗することがあります。私が行うとき:curlでリクエストを取得してもNet :: HTTPとOpenURIが失敗する

curl https://www.airbnb.es/calendar/ical/234892374.ics?s=23412342323 

(のparams#の年代がここに偽造)

を私はICSファイルの内容を一致出力が得られます。ブラウザで開くだけでうまくいきます。

私が使用:

Net::HTTP.get(URI(a.ics_link)) 

私は "503サービス一時的に利用できない" 応答を取得します。私もOpenURIで同様の結果を得て同じことを試みました。

なぜサーバーは、カールまたはブラウザからのリクエストを異なる方法で処理していますか?

これを回避する方法はありますか?

+1

これは答えではありませんが、私はRubyでNet :: HTTPをAPIリクエストに使用するのは一般的ではないと思います。私は個人的にhttps://github.com/httprb/httpを使いますが、このページではHTTPリクエストを扱う他の宝石を見ることができます。 – whodini9

+0

残りの時間に動作する私の実際のソースコード(これらのairbnb icsファイルは一貫して失敗するようです)はopen-uriを使用します。私は本当になぜあなたは2つの異なるHTTPクライアントから異なる応答を得るのか困惑しています。 – Vincent

+0

リクエストしているサーバーが、カールがリファラー、クッキー、ユーザーエージェントなどのように渡されていないオプションのヘッダーをチェックしている可能性があります。 私は許可を必要としないと仮定しています。 – cohart

答えて

-1

これはhttpsの問題です...理由はわかりませんが、RubyであなたのURLをhttpsに切り替えるとうまくいくはずです。

関連する問題