前提・実現したいこと
初めて質問させていただきます。
HttpWebReqestでGETリクエストし、レスポンスで返ってきたcontentlengthを取得したいのですが、-1になってしまいます。
MSDNを参照すると「Content-length ヘッダーが応答で設定されていない場合 ContentLength が-1 の値に設定します。」となってるのでそもそも取得できないということなのでしょうか?
完成イメージはGETリクエストで返ってくるstatuscodeやlength、dataなどのヘッダー情報取得、メッセージボディも取得してコンソールに出力させたいと考えています。
情報不足や不手際ありましたら申し訳ありません。
詳しい方ご教示お願いします。
発生している問題・エラーメッセージ
エラーメッセージ
該当のソースコード
try
{
string streamBuffer = null;
httpWebRequest = WebRequest.CreateHttp(pUrl); httpWebRequest.UserAgent = "http client/1.1"; httpWebResponse = (HttpWebResponse)httpWebRequest.GetResponse(); long length = httpWebResponse.ContentLength; Stream dataStream = httpWebRequest.GetResponse().GetResponseStream(); Encoding encode = Encoding.GetEncoding("utf-8"); StreamReader streamReader = new StreamReader(dataStream, encode); streamBuffer = streamReader.ReadToEnd(); Console.WriteLine(streamBuffer + "\r\n" + "\r\n" + length); httpWebResponse.Close();
試したこと
HttpWebReqest.Method="HEAD"
で指定して複数のURLでリクエストしたところレスポンスが返ってくるURLと-1のURLがありました。
ただ、取得できたURLでもHttpWebReqest.Method="GET"に変えると-1になってしまいました。
補足情報(FW/ツールのバージョンなど)
ここにより詳細な情報を記載してください。
回答4件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/04/03 02:30
退会済みユーザー
2018/04/03 04:49 編集
2018/04/06 02:47
退会済みユーザー
2018/04/06 04:29 編集