ContentLengthを取得するには – プログラミング – Home

ContentLengthを取得するに...
 
通知
すべてクリア

[解決済] ContentLengthを取得するには


aharen
 aharen
(@aharen)
ゲスト
結合: 18年前
投稿: 35
Topic starter  

以前にもお世話になっています
環境はWindows Vista Home E, VC++2008 Pro です

CLRでwindowsフォームアプリケーションをつくり
using namespace System;
using namespace System::Net;
using namespace System::Text;
using namespace System::IO;
を設定し フォームに
button1つくりました
#pragma endregion
の後に
http://msdn.microsoft.com/ja-
jp/library/system.net.httpwebresponse.contentlength.aspx
を参考にbutton1には

private: System::Void button1_Click(System::Object^ sender,
System::EventArgs^ e)
{
String^ str1( http://www.yahoo.co.jp/);

HttpWebRequest^ request = dynamic_cast<HttpWebRequest^>(WebRequest::Create(
str1));
request->MaximumAutomaticRedirections = 4;
request->MaximumResponseHeadersLength = 4;
request->Credentials = CredentialCache::DefaultCredentials;
HttpWebResponse^ response = dynamic_cast<HttpWebResponse^>(request->GetResponse
());
MessageBox::Show(String::Format( Content length : {0}, response-
>ContentLength ));
response->Close();
MessageBox::Show(END);
}
を実装

リビルド後起動して
button1を押しても ContentLengthは -1 が表示されます
どこに不具合があると考えられますでしょうか
URIがたとえば  http://www15.ocn.ne.jp/ などのときには正しく表示されます

なおContentLengthを取得するのが最終もくてきではありませんが
この部分がうまくいかないときもあるのでお伺いします


引用未解決
トピックタグ
wclrp ( 'o')
 wclrp ( 'o')
(@wclrp ( 'o'))
ゲスト
結合: 18年前
投稿: 287
 

ContentLengthが無いので取得できない。

プログラムで動的に作られるページは完成前に正確なサイズを知ることができないので
ContentLengthを付けられない。
静的ファイルはWebサーバーがサイズを調べて自動でContentLengthを付けてくれる。
動的でも1個の送信バッファに入りきれる小さいものはWebサーバーがサイズを調べて自動
でContentLengthを付けてくれることあるらしいよ。


返信引用
瀬戸っぷ
 瀬戸っぷ
(@瀬戸っぷ)
ゲスト
結合: 18年前
投稿: 178
 

なお、そういう場合にchunked形式で送信してくるコトがあります。

Transfer-Encodingヘッダにchunkedと指定されています。
その後にサイズが16進数で記述されていた…はず。

HTTPレスポンスのchunked形式について調べてみるとよいかと。


返信引用
aharen
 aharen
(@aharen)
ゲスト
結合: 18年前
投稿: 35
Topic starter  

ヘッダーを見たところ そうですね ContentLength なしですね

HTTP/1.1 200 OK
P3P: policyref= http://~~~~~~~~~
Cache-Control: no-cache
Cache-Control: no-store, must-revalidate
Expires: -1
Pragma: no-cache
X-XRDS-Location: http://~~~~~
Cache-Control: private
Connection: close
Content-Type: text/html; charset=utf-8

ありがとうございました


返信引用

返信する

投稿者名

投稿者メールアドレス

タイトル *

プレビュー 0リビジョン 保存しました
共有:
タイトルとURLをコピーしました