問題タブ [httpwebresponse]
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# - このストリームはシーク操作をサポートしていません。HttpWebResponse
http経由でファイルをダウンロードするプログラムを作っています。
ダウンロードしましたが、ダウンロードを一時停止し、プログラムを閉じて、後日再開できるようにしたいと思います。
私はそれらをダウンロードしている場所がこれをサポートしていることを知っています。
HttpWebResponseを介してファイルをダウンロードし、GetResponseStreamを使用して応答をストリームに読み込みます。
アプリを閉じて再起動すると、ダウンロードを再開する方法がわかりません。ストリームでシークを実行しようとしましたが、サポートされていないと表示されます。
これを行うための最良の方法は何でしょうか?
.net - HttpWebRequest/HttpWebResponse を使用して作成された HTTP 要求と応答を取得して Fiddler に表示する
Fiddler を接続して、.NET HttpWebRequest と HttpWebResponse を使用して行われた要求と応答をキャプチャする方法はありますか?
c# - WebRequest の HTTP プロキシ エラーを検出する
ターゲット Web サーバー エラーではなく、Web プロキシ エラーが原因で WebRequest が失敗したことを検出する方法は?
c# - System.IO.MemoryStream が大きいと、アプリケーションのメモリ使用量が劇的に増加しますか?
ユーザーが URL からファイルをダウンロードできるようにするライブラリを構築しています。私が検討しているオプションの 1 つは、ユーザーがファイルの予想される MD5 チェックサムを指定できるようにすることです。ライブラリの GetFile(string url) 関数は、ダウンロードされたストリームのチェックサムがユーザーによって指定されたものと一致することを保証します。
HttpWebResponse.GetResponseStream() によって返される NetworkStream がシーク可能ではないことに注意して、この質問への回答のおかげでストリームを複製する方法を見つけました: How can I read an Http response stream once in C#? . 先に進む前に、この重複がメモリにどのような影響を与えるかを理解したいと思いました。残念ながら、Google と MSDN で何度も検索しても無駄になりました。
ライブラリは、ダウンロードするファイルのサイズに制限を課しません。私の質問は、ユーザーが 2 GB のファイルを選択した場合、.NET 2.0 の MemoryStream 実装は、VM クランチのためにシステムがクロールを開始しないほど十分に効率的に PageFile と RAM を使用するのに十分スマートですか? また、別の質問に対する Jon Skeet のコメントは、私に考えさせてくれました。彼は、MemoryStream を破棄した後でも、メモリが 100% 解放されていないことを断言しました。メモリが実際に解放されることをいつどのように確認できますか? システムの要件 (および必要性) に基づいてリリースされますか?
ありがとう、マノジ
c# - HttpWebResponse:ストリームを閉じます
HttpWebRequestから応答を取得し(変更バージョンのJeff RichterのCCRラッパーを使用)、ダウンロードを続行するかどうかを決定するためにいくつかのヘッダーを調べています。続行したくない場合があるため、結果としてresponse.Closeとrequest.Abortを発行します。GetResponseStreamを発行してからストリームを閉じる必要がありますか、それともresponse.Closeを呼び出すときに暗黙的に行われますか?
GetResponseを発行した後、ドキュメントの状態は次のとおりです。
ストリームを閉じて接続を解放するには、Closeメソッドを呼び出す必要があります。そうしないと、アプリケーションの接続が不足する可能性があります。
つまり、応答があったら、ストリームを取得して閉じる必要があるということですか?
ハングしたダウンロードが最終的にシステムを圧倒するという、かなり奇妙な問題が発生しています。これはリソースリークの最有力候補のようですが、他の誰かがこの問題の経験があるかどうか疑問に思います。
余談ですが、同じストリームであると仮定して、GetResponseStreamを2回実行しても安全ですか?
.net - Response.GetResponseStream() は二重引用符をエスケープします
Response.GetResponseStream() はエスケープ文字を含む xml を返しています
<?xml version=\"1.0\" encoding=\"utf-8\"?>
このため、XmlReader は {None} を返します。助けてください?
HttpWebRequest req = (HttpWebRequest)HttpWebRequest.Create(url);
req.Accept = "*/*"; req.Headers.Add("UA-CPU", "x86");
req.UserAgent = "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0; MS-RTC LM 8)"; HttpWebResponse resp = (HttpWebResponse)req.GetResponse(); XmlTextReader xRead = new XmlTextReader(resp.GetResponseStream());
呼び出しがクライアント スクリプト Web サービス呼び出しからのものである場合、xRead は {None} です。StreamReader を使用して応答ストリームを確認すると
StreamReader reader = new StreamReader(resp.GetResponseStream()
return reader.ReadToEnd()
エスケープ文字が表示されます
<?xml version=\"1.0\" encoding=\"utf-8\"?>
vb.net - HttpWebRequest POST と Cookie
こんにちは、joomla のログイン ページにデータを投稿するアプリケーションを作成しようとしていますが、返されるのは Cookie が有効になっていないことだけです。
どうすればいいですか?
httpwebrequest - HttpResponseは、明示的なresponse.close()なしで「using」ブロックで機能しますか?
私はこれについて明確にしようとしていました:
方法1:
方法2:
ローカルマシンでメソッド1とメソッド2の両方を使用して接続し、リモートマシンXから応答を取得すると、両方とも正しく機能しました。
リモートマシンYでこのコードを使用してXからの応答を取得すると、方法1のみが機能し、方法2では次のようになります。
上記の方法と考えられる問題の違いは何ですか?
c# - 非同期HttpWebResponse読み取り中に未処理のSocketExceptionをキャッチします
HttpWebRequest.BeginGetResponse / EndGetResponseおよびHttpWebResponse.GetResponseStream()。BeginRead / EndReadへのすべての非同期呼び出しは、try / catchブロックから行われますが、これらの例外は伝播し、それらを処理してアプリケーションの終了を停止する機会を残しません。
未処理の例外:System.IO.IOException:トランスポート接続からデータを読み取れません:確立された接続が、ホストマシンのソフトウェアによって中止されました。---> System.Net.Sockets.SocketException:確立された接続がホストマシンのソフトウェアによって中止されました
未処理の例外:System.IO.IOException:トランスポート接続からデータを読み取れません:既存の接続がリモートホストによって強制的に閉じられました。---> System.Net.Sockets.SocketException:既存の接続がリモートホストによって強制的に閉じられました
実際のコードフラグメント:
PS:バグレポートがMicrosoftConnecthttps://connect.microsoft.com/VisualStudio/feedback/ViewFeedback.aspx?FeedbackID=510564に提出されました
cookies - このサイトを使用するにはCookieが必要です。HttpWebRequest/HttpWebResponseクッキー
次のコードを使用してHttpWebRequestを作成し、応答ストリームからXMLをレンダリングしています。
`HttpWebRequest req =(HttpWebRequest)HttpWebRequest.Create(url);
req.Accept = " / ";
req.Headers.Add( "UA-CPU"、 "x86");
req.UserAgent = "Mozilla / 4.0(互換性; MSIE 7.0; Windows NT 6.0; MS-RTC LM 8)";
req.CookieContainer = new CookieContainer();
using(HttpWebResponse resp =(HttpWebResponse)req.GetResponse())
{{
using(StreamReader reader = new StreamReader(resp.GetResponseStream()))
{{
}
} `
ローカルサーバーとテストサーバーでは正常に機能していましたが、UATサーバーでは、「このサイトを使用するにはCookieが必要です」という応答が表示されます。なぜこれが起こっているのか分かりません。URLを直接参照すると、有効なXMLがレンダリングされますが、上記のコードを使用すると機能しません。誰か助けてもらえますか?