問題タブ [http-conduit]
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.
haskell - Http.ConduitのsimpleHttpによってスローされた404ステータス例外をキャッチするにはどうすればよいですか?
htmlファイルに含まれるすべてのpngファイルをダウンロードしようとしています。404ステータス例外をキャッチするのに問題がありますが、代わりにプログラムがクラッシュします。
デモ用のサンプルを次に示します。
「おっと」メッセージが印刷されない代わりに、アプリが次のようにクラッシュします。
StatusCodeException(Status {statusCode = 404、statusMessage = "Not Found"})[( "Content-Type"、 "text / html; charset = UTF-8")、( "X-Content-Type-Options"、 "nosniff ")、(" Date "、" Fri、27 Jan 2012 03:10:34 GMT ")、(" Server "、" sffe ")、(" Content-Length "、" 964 ")、(" X-XSS -保護"、" 1; mode = block ")]
私は何が間違っているのですか?
アップデート:
Thomaのアドバイスに従って、コードを次のスニペットに変更し、適切な例外処理を実行できるようになりました。
haskell - Network.HTTP.EnumeratorからNetwork.HTTP.Conduitへの移行
コードが壊れた理由がわかりません。parseURL
最初は、を与えるからだと思い[]
ましたrequestHeaders
。さて、多分私はそれにresquestHeadersがどうあるべきかを伝える必要があります。requestHeaders
さて、私は私の古い、動作しているコードから生成されたものを調べました。それも、を返します[]
。だから今、私はアイデアがありません。以下は、古い動作コードであり、GHCiで新しいコンジットベースのライブラリを使用して試したものに従います。
上記は正常に機能します。これが、移行中に実行しようとしたことと、表示されるエラーです。
ご覧のとおり、これはほぼ同じコードです。ですから、何が変わったのか、そして何をもっと詳しく見ていくべきかについてのフィードバックをお願いします。また、クライアントコードとサーバーの間で送受信されるhttpヘッダーを確認するにはどうすればよいですか?
haskell - http-conduitをxml-conduitに接続する
http-conduitからxml-conduitを介して応答をXMLドキュメントに変換するのに苦労しています。
このdoPost
関数はXMLドキュメントを取得し、サーバーに送信します。サーバーはXMLドキュメントで応答します。
以下は機能し、「200」を返します。
ただし、xml-conduitを使用して応答本文を解析しようとすると、次の問題が発生します。
結果として生じるコンパイルエラーは次のとおりです。
$ =と$$を使用してhttp-conduitからxml-conduitにソースを接続しようとしましたが、成功しません。
誰かが私を正しい方向に向けるためのヒントがありますか?前もって感謝します。
ニール
haskell - http-conduit ブラウザの使用法
HTTPS を使用してサイトからデータをスクレイピングしようとしています。Network.HTTP.Conduit を使用して基本的な要求を正常に行うことができました (資格情報の投稿など) が、応答ヘッダー (Set-Cookie) から Cookie 情報を抽出することに失敗しました。http-conduit にはCookie を処理するための独自のメカニズムがあるようですが、私には理解できませんでした。
Network.HTTP.Conduit.Browser は Cookie を自動的に処理するようですが (私には問題ありません)、ドキュメントが不足しているため機能しませんでした。
http-conduit ブラウザー モジュールを扱った経験のある人が、次の方法を教えてくれませんか?
- 自己署名証明書を処理します (基本モジュールのmanagerCheckCertsでこれを行うことができました)
- リダイレクトに従わず、本文に URL エンコードされたパラメーターを含む POST 要求を送信します (これにはベース モジュールのurlEncodedBodyを使用しました)。
- 2. ステップからの Cookie を単純な GET リクエストで使用し、応答を (遅延) ByteString として読み取ります (これにはhttpLbsを使用します) 。
Network.HTTP.Conduit.Browser の抽象化レベルは、Network.HTTP.Conduit と比較して私のアプリケーションにより適しているように見えるので、後者を使用して手動で Cookie を処理できたとしても切り替えたいと思います。
http - Network.HTTP.Conduit.Requestオブジェクトを作成するにはどうすればよいですか?
Network.HTTP.Conduitパッケージを使用Request
してを構築しようとしています。手順は次のとおりです。
このデータ型のコンストラクターは公開されていません。代わりに、defメソッドを使用してデフォルトのインスタンスを取得するか、 parseUrl を使用してURLから構築し、以下のレコードを使用して変更を加える必要があります...
これが何を意味するのかわかりません。不変のRequestオブジェクトに「変更を加える」にはどうすればよいですか。さらに、「下」の関数はどれもオブジェクトを返しません!Request
これは私が得た限りです:
なぜ私がString
上記を使用したのかはわかりませんが。
助けていただければ幸いです。
haskell - haskeline 内からネットワーク IO を呼び出す
コマンドライン引数 (ユーザー名、パスワード、日付) を受け取り、Network.HTTP.Conduit
ライブラリを使用して xml メッセージをサーバーに送信する既存のプログラムがあります。次に、結果を解析し、いくつかの作業を行い、blaze-html を使用してファイルに書き出します。
それはすべて魔法のように機能します。haskeline
ただし、パスワードが表示されないように使用すると思いました。ユーザーが指定した値を取得して出力するコマンド ライン プログラムを作成することはできますが、conduit を使用する関数を呼び出しても戻りません。
問題のあるコードは次のとおりです。
関数 getWMClients 関数は次のとおりです。
プログラムを実行すると、「querying WM...」でハングします。http-conduit が実際に実行されているとは思えません。これを機能させる方法に関するヒントはありますか?
前もってありがとう、ニール
haskell - HaskellのWAIリクエストをNetwork.HTTP.Conduitリクエストに変換する
サーバーを作成していますが、特定のリクエストメッセージに沿って転送する必要があります。このメッセージは基本的にPOST(またはGET)メッセージであり、数メガバイトのファイルが含まれている可能性があります。このメッセージは、ファイルを実際に保存(または取得)する別のサーバーに転送されます。
Yesodフレームワークを使用しています。したがって、を使用してgetWaiRequest
、WAIリクエストを取得できます。しかし、渡す新しいメッセージを開始するには、その怠惰のためにNetwork.HTTP.Conduitを使用する必要があります。Request m
だから私はそのモジュールで作る必要があります。しかし、私にはこの変換を行う方法がわかりません。WAIRequest
は単なるデータ型ですが、コンジットはRequest m
型であるため、コピーしようとするとエラーメッセージが表示され続けました。
誰かが私がこれを行う方法を教えてもらえますか?そうでない場合は、HTTPコンジットを使用せずにWAIリクエストを別のサーバーに渡す方法も同様に優れています。
ありがとう!
http - Haskell はモジュール「Network.HTTP.Conduit」を見つけられませんでした
このインポートを haskell で動作させることができません。
コンパイルしようとすると、次のエラーが発生します。
GHCI でファイルを読み込もうとすると、同じエラーが発生します。
cabal 経由で http-conduit の最新バージョンをインストールしました。cabal からの出力は次のとおりです。
違いがある場合は、Ubuntu 12.04 を使用しています。
これがインポートされない理由はありますか?
編集:「ghc-pkg リスト」からの出力:
そして「ghc-pkg check」から:
「ghc-pkg unregister serve-2.5.11」と「ghc-pkg unregister peakachu-0.3.0」を実行した後、「ghc-pkg list http-conduit」からの警告は発生しなくなりましたが、問題は修正されていません。
「ghc-pkg check」の stderr から:
「-package http-conduit」でコンパイルした場合の出力:
すべての依存関係がリストされているようです。「カバールリスト」からの出力は次のとおりです
これは、「ghc-pkg list xxxx」からの出力です。xxxx は、「-package http-conduit」フラグを使用してコンパイルした結果の依存関係リスト内の各パッケージです。
windows - Windows 8 で「InternalIOException getAddrInfo: 存在しません (エラー 10093)」
なぜこんな単純なコードが動かないのでしょうか?
次のエラーが発生します。
TestConduit.exe: InternalIOException getAddrInfo: 存在しません (エラー 10093)