問題タブ [flurl]
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.
c# - Flurl で `multipart/form-data` を投稿する
次のリクエストを投稿する必要があります。
requests
次のようにPythonライブラリを使用すると、これを非常に簡単に実行できます。
Flurl.Http
ライブラリで同じことを行う方法はありますか?
文書化された方法に関する私の問題は、Content-Type
キーと値のペアごとにヘッダーが挿入さfilename*=utf-8''
れ、ファイルデータのヘッダーが挿入されることです。ただし、リクエストを送信しようとしているサーバーはこれをサポートしていません。また、ヘッダーの値name
と値を二重引用符で囲んでいることに注意してください。filename
編集:以下は、投稿リクエストを行うために使用したコードですFlurl.Http
:
c# - Flurl GetResponseJson を使用したユニット テスト コード()
をキャッチし、catch ブロックでエラー メッセージを取得するためにFlurlHttpException
呼び出しているコントローラーを単体テストしようとしています。GetResponseJson<TError>()
例外をモックしようとしましたが、Call
プロパティでSettings
. 単体テストを実行すると、設定に JsonSerializer がないため失敗します。このテストをセットアップするにはどうすればよいですか?
動作しない私の現在の試みは次のとおりです。
コントローラ
単体テスト
android - flurl に ModernHttpClient を実装する
Xamarin.Android アプリを介して REST サービスを呼び出そうとすると、このエラーが発生します。SecureChannelFailure (認証または復号化に失敗しました。)単純な HttpClient を使用していた場合、これは単に ModernHttpClients MessageHandler を注入することで修正されます。
これはテスト済みで動作します。ただし、私は flurl を使用しているため、このスレッドに従って DefaultHttpClientFactory クラスの CreateMessageHandler メソッドをオーバーライドして、HttpClientFactory のカスタマイズを試みました。
ここに要点があります
そして、ModernHttpClients ハンドラーを単純に使用するカスタム ファクトリ。
残念ながら、以前と同じエラーが発生しているため、これは機能していないようです。これを適切に flurl に入れる方法についてのアイデアはありますか?
c# - Flurl.Http で Polly を使用するには?
現在、私はこの要求を持っています:
Polly ( https://github.com/App-vNext/Polly ) の使用を開始して、再試行を処理し、より優れたユーザー エクスペリエンスを提供したいと考えています。たとえば、ネットワーク接続が悪いために最初の試行でユーザーに「電話を切る」ことはありません。これは私が使用しようとしていた例です:
HttpResponse
ただし、戻り型である必要があります。私の Flurl の例からわかるように、 .T
であるにもかかわらず を返していHttpResponse
ます。はT
、 を逆シリアル化するために使用される型StringContent
です。
この最初の例は、PCL 内で使用していて、そこへの参照を取得できないため、まったく機能しませんSystem.Web
。だから私はこれを試しました:
HttpStatusCode
ただし、Polly は戻り値の型を想定しているため、これも機能しません。だから私の質問は次のとおりです: polly にこれらHttpStatusCode
の s を処理し、 type の戻りを許可するように指示するにはどうすればよいT
ですか?
c# - C# Flurl - WebRequestHandler を FlurlClient に追加する
私はFlurlと協力して、証明書ベースの認証を必要とする API にアクセスしています。この SO 投稿から、 に証明書を追加し、にこのハンドラーを使用するWebRequestHandler
ように指示するのは簡単であることがわかりました。HttpClient
しかし、Flurl を使用していることはあまり明確ではありません。以下の3つのことを試しました。
DefaultHttpFactory の拡張
私は最初にX509HttpFactory : DefaultHttpFactory
、ハンドラーを作成して に割り当てる独自のものを作成する必要があると考えましたHttpClient
。ただし、ソースを表示すると、コンストラクターがCreateClient
既にハンドラーを想定していることに気付きました。このハンドラーはどこから来たのですか?
DefaultHttpFactory を使用してクライアントを作成する
HttpClient
キャストできないため、これはコンパイルされませんFlurlClient
ConfigureHttpClient を使用する
これは最も実行可能なオプションのように思えますが、デリゲートはAction
戻り値のない型であるため、確信が持てません。
質問
Flurlを使用してクライアント側の証明書認証をサポートするための最良/正しい方法は何ですか?
c# - winform アプリから Flurl を呼び出しても結果が返されない
素早い背景。構築したクラス ライブラリ内で Flurl を使用して、クラウド ストレージ API と通信するためのコードを簡素化しました。すべてのメソッドをテストするために使用されるコンソール アプリからライブラリを呼び出すと、美しく機能します。単純な winform でまったく同じクラス ライブラリを使用しようとすると、コンソール アプリを使用して非常に迅速に返される同じメソッドが結果を返さないようになりました。デバッグ時に、以下のコードは「.GetAsync()」行に到達した後、結果を返さず、デバッグ セッションの続行も妨げます。エラー メッセージはスローされません。
Flurl サイトで、誰かが同じ問題を抱えているように見えるというコメントを見つけましたが、推奨されたようにここに質問を投稿したようには見えません。私を正しい方向に向けることができるものは何でも大歓迎です。
非同期メソッドでラップされた Flurl コード
完全に機能するコンソールアプリ呼び出しコード
戻らない Winform 呼び出しコード