問題タブ [dotnet-httpclient]

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.

0 投票する
4 に答える
1638 参照

.net - .NET の HttpClient スロットリング

サードパーティのサーバーから情報を取得するためにサードパーティのサーバーを要求する必要がある .NET4 ベースのアプリケーションを開発しています。これらの HTTP リクエストを行うために HttpClient を使用しています。

短期間に 100 から 1000 のリクエストを作成する必要があります。これらのリクエストの作成を制限(定数などで定義)に制限して、他のサーバーが多くのリクエストを受信しないようにしたいと思います。

いつでも作成されるタスクの量を減らす方法を示すこのリンクを確認しました。

これが私の非機能的なアプローチです:

もちろん、ここでの問題は、一度に 1 つのタスクが作成されたとしても、別のスケジューラで実行されるため、同時に多くの要求が作成されて処理されることです。スケジューラを HttpClient に変更する方法が見つかりませんでした。

この状況をどのように処理すればよいですか? 作成されるリクエストの量を特定の制限に制限したいのですが、これらのリクエストが完了するまでブロックしないでください。

これは可能ですか?何か案は?

0 投票する
3 に答える
24263 参照

c# - HttpClient のカスタム ユーザー エージェント?

のカスタム ユーザー エージェントを設定できHttpClientますか?

Web サイトをモバイル形式で表示する必要があります。

0 投票する
1 に答える
2553 参照

c# - HttpResponseMessage.Content データ (ReadAsStringAsync) を特定の最大サイズに制限する

私は以下を使用しています:

HttpResponseMessage.Content を介してダウンロードされる量を制限する方法はありますか? URL を信頼せず、URL が実際に 100 GB をフィードバックする場合、これは問題を引き起こす可能性があります... 基本的に、これを構成可能なバイト数に制限したいと思います。欲しい!:) ありがとう!

0 投票する
3 に答える
11529 参照

.net - カスタム JsonConverter を使用した .net HttpClient

私は .NET の HttpClient を使用して、クライアント側でカスタムの逆シリアル化を少し必要とする JSON データを返す WebAPI にリクエストを作成しています。このために私は自分で を作成しましたが、メソッドがコンバーターの存在を取得する方法 JsonConverterがわかりません。ReadAsAsync<T>

ReadAsStringAsyncを使用して応答を読み取り、その文字列を に渡すことで、今のところ問題を解決しましJsonConvert.DeserializeObjectたが、もっとエレガントな解決策があるはずです。

これが私のコードです:

これは私ができる最善の方法ですか、それとももっとエレガントな方法がありますか?

接続する必要がある場合は、ここで HttpClient も作成します。

0 投票する
2 に答える
1629 参照

c# - Windows 8 アプリで HttpClient を使用した並列 HTTPRequest

Windows 8 アプリで HTTP 要求を送信し、HTTP 応答を受信するために HttpClient を使用しています。同じことについていくつか質問があります。

1) 単一の HttpClient オブジェクトを使用して、複数/並列の HTTP リクエストを送信できますか? HttpClient オブジェクトを効率的に使用するための推奨される方法はありますか?

2) 毎回 HttpClient オブジェクトを作成する場合と、新しいリクエストごとに同じオブジェクトを再利用する場合の違いは何ですか?

3) Fiddler を使用してリクエストとレスポンスを追跡しています。私が見つけたのは、Fiddler の応答時間は、アプリ内で手動で計算している応答時間とは異なるということです。Fiddler での要求の応答時間は、アプリで計算された応答時間よりも常に短くなります。なぜそうなのか誰か教えてください。

4) 私が遭遇したもう 1 つのことは、すべての要求に対して HTTPS ハンドシェイクを行っていることです。代わりに、最初にのみ実行する必要があります。Fiddler を使用して確認したところ、はっきりと表示されています。これを毎回実行しないようにするために、HttpClient オブジェクトに設定する必要があるプロパティはありますか。

5) HttpClient がスレッドセーフかどうか?

0 投票する
2 に答える
9022 参照

c# - Rest c# httpClient を使用して Jira 課題を作成する

アトラシアンのhttps://answers.atlassian.com/questions/79902/using-httpclient-c-to-create-a-jira-issue-via-rest-generates-bad-request-responseで 1つの回答を読みました。ユーザーは、次のコードで JIRA 課題を作成しました。私はそれを適応させましたが、セルフビルドクラスの問題を使用してエラーが発生しましたObjectContent

コンパイラはそれを受け入れません。理由を知っている人はいますか?

そして使用して

0 投票する
4 に答える
27299 参照

c# - HttpClientのクロールによりメモリリークが発生する

WebCrawlerの実装に取り​​組んでいますが、ASP.NETWebAPIのHttpClientで奇妙なメモリリークに直面しています。

したがって、削減されたバージョンはここにあります:


[更新2]

問題を見つけましたが、リークしているのはHttpClientではありません。私の答えを見てください。


[更新1]

効果なしでdisposeを追加しました:

リンクを含むファイルはここから入手できます。

これにより、メモリが常に上昇します。メモリ分析は、おそらくAsyncCallbackによって保持されている多くのバイトを示しています。私は以前に多くのメモリリーク分析を行いましたが、これはHttpClientレベルのようです。

非同期コールバックによって保持されている可能性のあるバッファを示すプロセスのメモリプロファイル

私はC#4.0を使用しているので、ここではasync / awaitがないため、TPL4.0のみが使用されます。

上記のコードは機能しますが、最適化されておらず、時にはタントラムをスローしますが、効果を再現するには十分です。ポイントは、メモリがリークする原因となるポイントが見つからないことです。

0 投票する
1 に答える
2314 参照

httpwebrequest - .NET HttpClientは、いくつかのリクエストの後にハングします(Fiddlerがアクティブでない場合)

私はSystem.Net.Http.HttpClient、コンソールアプリケーションからREST APIに一連のリクエストを投稿し、JSON応答を厳密に型指定されたオブジェクトに逆シリアル化するために使用しています。私の実装は次のようになります。

ただし、この質問で説明した問題と非常によく似た問題が発生しています。リクエストがFiddler経由でルーティングされるとすべて正常に機能しますが、Fiddlerが無効になっている場合は4番目または5番目のリクエストの後にハングします。

問題の原因が同じである場合、各リクエストの後にリソースを完全に解放するためにさらに何かをする必要があると思いますが、HttpClientこれを行う方法を示すコードサンプルを見つけることができません。

誰かが私を正しい方向に向けることができることを願っています。

どうもありがとう、

ティム

0 投票する
3 に答える
1542 参照

c# - HttpClient を使用して HttpResponseMessage がキャッシュから処理されたかどうかを判断する方法

HttpClientHttpResponseMessageを使用する場合、 WebResponse.IsFromCacheに相当するものは何ですか?

応答に確認できる HTTP ヘッダーはありますか?

0 投票する
2 に答える
8131 参照

c# - C#非同期タスクが無期限に待機しています

「async」と「await」が提供する機能を使用してWebページのコンテンツを非同期にダウンロードしようとしていますが、タスクが完了するのを永遠に待っているという問題が発生しています。次のコードスニペットの何が問題になっているのか教えてください。