問題タブ [net-http]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
ruby-on-rails-3 - http.get はランダムに「getaddrinfo: 名前またはサービスが不明です」と表示されます
オフライン レポートを生成するには、Rails アプリで Google Charts API からグラフをダウンロードする必要があります。
問題:ほとんどの場合は正常に動作しますが、(ランダムに) 失敗して次のように表示されることがあります。getaddrinfo: Name or service not known
エラーが発生したら、生成を再起動するだけで、通常は成功します。
普通ですか?これを防ぐためのベストプラクティスはありますか?
再入可能なアルゴリズムか、より高度な方法でしょうか?
現在のコード:
ruby-on-rails - クライアントとしてのRESTfulRailsコントローラーとnet/http-多くのリクエストで遅い
潜在的に多くのレコードが配列された配列があります。すべてのレコードは、サーバーによってRESTfulRecordsControllerに保存されます。現時点での私のソリューションは次のようになります。
このソリューションの利点は、ConnectionError、ConnectionTimeout、またはServerErrorが発生した場合に、未送信のレコードがローカルに保存され、後で再度送信できることです。一致するコントローラーは、標準のRailsコントローラーです。
私の今の問題は、本番モードではこれが非常に遅いように見えることです。サーバーがボトルネックになっていない場合は、約4リクエスト/秒です。
ここで問題となるのは、HTTPクライアントを1回だけインスタンス化し、同じ接続を使用してすべてのレコードを送信することが役立つかどうかです。私はそれを実装するための解決策を見つけられませんでした。なぜなら、ここにあるコードのsave_or_storeの振る舞いが必要だからです。
別の解決策は、次々に行われるレコードを転送するのではなく、それらをグループ化し、レコードのグループを受け入れてそれらを格納する新しいコントローラーを作成することです。
したがって、この質問は、技術的な質問よりもアーキテクチャ的な質問に要約されます。いずれにせよ、HTTP接続を開いたままにして、その方法でソリューションを高速化できるかどうか疑問に思います。
何か案は?
よろしくフェリックス
ruby-on-rails - Railsコントローラー内のhttpリクエスト(net httpまたはRestClientを使用)
コントローラアクション内でhttpリクエストを作成するのに問題があります。net / httpとRestClientを使用しましたが、ローカルサーバーのURL、つまりhttp:// localhost:3000 / engine / do_processで機能させることができません。常にrequesttimeoutを取得しますが、他の有効なURLで機能します。
これについて私に教えていただければ幸いです。調査を行いましたが、なぜこのタイムアウトの問題が発生したのかについてのリソースが見つかりません。
サンプルコントローラーコード:
ruby - Ruby:HTTP.new.startと動的HTTP(S)をブロックする
HTTPリクエストをブロックするアプリケーションが必要なので、数行のコードを追加する必要がありました。私が理解できなかった唯一の部分はif uri.scheme == 'https'; http.use_ssl = true
、現在のステートメントでhttp/httpsを設定できる方法があるということでした。
追加した:IOError: use_ssl value changed, but session already started
ruby - ドメイン所有者の確認
ランダムに生成されたファイルをドメインのルートにアップロードすることで、ユーザーがRails 3アプリの一部としてドメインを制御できるかどうかを確認しようとしています(GoogleがGoogleアプリで行うのと同じ方法です)。現在、Net :: HTTPを使用しており、アドレスが有効な場合は機能しているようですが、アドレスが有効でない場合は、このエラーが発生します。
どういうわけかこのエラーを無視する方法や、コントローラーのコードを書くためのより良い/別の方法はありますか?
どんな助けでも素晴らしいでしょう。ありがとう。
ruby - Ruby でクエリ文字列を使用して URL に投稿する
Ruby では、Net:HTTP を使用してクエリ文字列を持つ URL に POST することはできないようです。少なくとも、私のテストでは落とされ、それがどのように機能しないかについてここで3 年前の議論があります。
では、それを行うためのまともな方法は何ですか?もっと簡単な方法があれば、Mechanize などへの依存関係を追加したくありません。そして、仕様に準拠することは可能であるはずであり、今日が 3 年後であることを考えると、何かが変わっていることを願っています。
ruby-on-rails - URLにデータも含まれているnet/httpを使用してxmlデータを投稿するにはどうすればよいですか
someapi.com?userID=123などのURLにxmlを投稿する必要があるAPIを使用しています。これまでのところ、私はこれを試しました(xmlがすでにxml変数で構成されていると仮定します):
ユーザーIDをフォームデータとして持つことができるかどうかを把握しようとしていますが、xmlを投稿することもできますか?基本的に、xmlをhttp://www.someapi.com/process_leads.asp?userID=1204に投稿することになっています。それは可能ですか?
ruby-on-rails - Ruby Net::HTTP は URL を正しく取得できません
コード:
self.response = Net::HTTP.get_response(URI.parse(url.strip))
URL:
http://www.apmebf.com/g7116vpyxF/pw0/EDDEGMFH/EGJFDKJ/D/D/D?h=q<<lxxt%3A%2F%2F000.htfspz0.rix%3AC4%2Fgpmgo-57A64BA-54457D68<<K<<
このエラーが発生します:
bad URI(is not URI?)
使用してみましたが、次のエラーURI.encode
がスローされます。
undefined method `request_uri' for #<URI::Generic:0x007fc7ae31ecf0>
それは私を夢中にさせています-何かアイデアはありますか?
ruby - タイムアウトし続ける場合、net/http で while ステートメントを実行するにはどうすればよいですか?
次のコードがあります。
の内容は/up.txt
、
はい
up.txt
ただし、次のように、サーバー (つまり、サーバー ホスティング) がダウンしている場合はタイムアウトし続けます。
/home/jrg/.rvm/rubies/ruby-1.9.2-p290/lib/ruby/1.9.1/net/http.rb:644:in `initialize': 接続が拒否されました - connect(2) (Errno::サービス拒否)
関連するが役に立たなかった: Rails で「net/http」を使用すると「Errno::ECONNREFUSED」が表示されるのはなぜですか?
以外のものを使用することを検討する必要がありNet::HTTP
ますか?