問題タブ [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 - ruby を使用して URL のコンテンツの長さを取得する
を使用して Web サイト上のファイルに関する詳細を取得する Ruby スクリプトを作成しようとしていますnet/http
。私のコードは次のようになります。
このリクエストから 2 つの情報を取得したいと思います: コンテンツの拡張された全長と、(必要に応じて) 収縮されたコンテンツの長さです。
ヘッダーにはcontent-length
、コンテンツの gzip 圧縮された長さのように見えるパラメーターが含まれることがあります。res.body.length を使用して、コンテンツの膨張したサイズを概算することもできますが、これは想像力を駆使しても絶対確実ではありません。のドキュメントにnet/http
は、gzip ヘッダーがリストから自動的に削除されると書かれているため (私を助けるために、よろしくお願いします)、この情報について信頼できるハンドルを取得できないようです。
どんな助けでも大歓迎です(これをより簡単に行うことができる場合は、他のgemを含めて)。
ruby - ruby-openid: 検出の実行中に @socket が設定されていません
omniauth/openid でちょっとしたトラブルが発生しています。
認証しようとすると、ログにこれが見つかりました:
undefined method io' for nil:NilClass
次のスニペットでは、openid/fetchers.rb に由来する重要な点があります。
そのエラーは によって生成され@socket.io.peer_cert
、@socket は定義されていません。
以前にこれに遭遇した人はいますか?何が原因なのかよくわかりません。
私が実行しているバージョン:
- ruby 1.9.3dev (2010-08-17 トランク 29020) [x86_64-darwin10.4.0]
- ruby-openid (2.1.8)
- ruby-openid-apps-discovery (1.2.0)
- オムニ認証 0.2.0
ruby-on-rails - Net :: HTTPメソッドの詳細はどこで確認できますか?
誰かが私にNet::HTTPの良いリソースを教えてもらえますか?特定のコードがそのように機能する理由を理解しようとしています。例えば:
上記のコードの95%は理解していますが、何が行われているのかを説明するリソースが見つかりません.head('/')
。誰かが私に初心者に優しい良いリソースを教えてくれることを願っています。
ruby-on-rails - Rails で「net/http」を使用すると「Errno::ECONNREFUSED」が表示されるのはなぜですか?
URL から XML ファイルを解析しようとしています。私がこのようなことをしようとすると:
すべてが機能しますが、Rails プロジェクトの外でこれを行う場合のみです。このファイルを Rails 3 プロジェクトに含めてそこで解析しようとすると、エラーが発生します"Errno::ECONNREFUSED in [controller]" - Connection refused - connect(2)
。
net/http
私の問題は次のとおりです。コンポーネントのインストール方法がわかりません。http://www.rubygems.orgで探していますが、見つかりません。
ruby - 小さな Ruby スクリプトのデバッグに助けが必要
スクリプトを実行すると、次のエラーが表示されます。
スクリプトは次のとおりです。
ruby-on-rails - 「遅い」API での ActiveResource EOFError
私はこれを解決するのに真剣に苦労しています。
私は 2 つの Rails アプリを持っています。それらを Client と Service と呼びましょう。すべて非常にシンプルで通常の REST インターフェイスです。基本的なシナリオは次のとおりです。
- クライアントがサービスに対して POST /resources.json リクエストを行う
- サービスは、リソースを作成し、ID をクライアントに返すプロセスを実行します。
繰り返しますが、サービスの処理は非常に時間がかかり、数分かかる場合があるということだけです。その場合、サービスがリクエストを正しく処理し、200/201 で応答している間、リクエストが行われてから正確に 60 秒後にクライアントで EOFError が発生します ( ActiveResource::Base.timeout の設定に関係なく)。これは、ログに表示されるものです(時系列):
明らかに、サービスの応答はクライアントに届きませんでした。エラーをソケット レベルまで追跡し、シナリオをスクリプトで再現しました。そこでは、TCPSocket を開いてデータを取得しようとしました。私は何も要求していないので、何も返されず、要求は 70 秒後にタイムアウトするはずです (下部の完全なスクリプトを参照してください)。
これらは、いくつかのドメインの結果です。
ご覧のとおり、70 秒間「待機」できるサーバーもあれば、接続を終了して EOFErrors を発生させたサーバーもありました。サービスに対してこのテストを行ったところ、(予想通り) 60 秒後に EOFError が発生しました。
なぜこれが起こるのか誰か知っていますか?これらを防止したり、サーバー側のタイムアウトを延長したりする方法はありますか? ソケットが閉じられた後もサービスは「機能」し続けるため、プロキシレベルで終了する必要があると思いますか?
すべてのヒントをいただければ幸いです。
PS: 完全なスクリプト:
ruby - Net::HTTP のブロック形式を使用した HTTPS リクエスト -- 可能ですか?
ブロックフォームなしで Net::HTTP https リクエストを行うには、次のようにします:
しかし、ブロック形式を実行するときに Net::HTTP に https を使用するように指示する方法はありますか?
私はルビー1.8.7を使用しています
ruby-on-rails - Rails 3 URLのEachValidator
特定の URL の有効性をテストするために使用できる EachValidator を作成したいと考えています。基本的には、URL形式に一致するかどうかを最初にテストしたいと思います。URL のように見える場合は、Net::HTTP を使用して URL の解決を試みます (次のリダイレクトを含む)。誰かがすでにこれと同様のことを行っていて、喜んでコードを共有していますか?