HTTPヘッダのすべてのパラメータを取得する (HTTPヘッダのダンプ) - ASP.NET
HTTPヘッダのすべてのパラメータを取得したいことがあります。この場合はServerVariablesプロパティを用います。
プロジェクトの新規作成で空のASP.NET Webアプリケーションを作成し、ジェネリックハンドラーを追加します。ジェネリックハンドラーのProcessRequestメソッドに以下のコードを記述します。
public void ProcessRequest(HttpContext context)
{
context.Response.ContentType = "text/plain";
context.Response.Write("Accept");
string HeaderValue="";
foreach (string header in context.Request.ServerVariables){
HeaderValue += header + " = " + context.Request.ServerVariables[header] + "\r\n";
}
StreamWriter sw = new StreamWriter(@"c:\data\dump.txt", true, System.Text.Encoding.ASCII);
sw.Write(HeaderValue);
sw.Close();
}
実行するとヘッダのパラメータをすべてc:\data\dump.txtに書き出します。
出力内容
ALL_HTTP = HTTP_CONNECTION:Keep-Alive
HTTP_ACCEPT:image/jpeg, application/x-ms-application, image/gif, application/xaml+xml, image/pjpeg, application/x-ms-xbap, application/x-shockwave-flash, application/vnd.ms-excel, application/vnd.ms-powerpoint, application/msword, */*
HTTP_ACCEPT_ENCODING:gzip, deflate
HTTP_ACCEPT_LANGUAGE:ja-JP
HTTP_COOKIE:MGUID=MGUID-20090824-153559-47029820; FSUID=FSUID-20091015-135853-4536; __utmmobile=0x4F39C50760C17755
HTTP_HOST:localhost:50327
HTTP_REFERER:http://localhost:50327/
HTTP_USER_AGENT:Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; .NET4.0C; .NET4.0E; InfoPath.3)
ALL_RAW = Connection: Keep-Alive
Accept: image/jpeg, application/x-ms-application, image/gif, application/xaml+xml, image/pjpeg, application/x-ms-xbap, application/x-shockwave-flash, application/vnd.ms-excel, application/vnd.ms-powerpoint, application/msword, */*
Accept-Encoding: gzip, deflate
Accept-Language: ja-JP
Cookie: MGUID=MGUID-20090824-153559-47029820; FSUID=FSUID-20091015-135853-4536; __utmmobile=0x4F39C50760C17755
Host: localhost:50327
Referer: http://localhost:50327/
User-Agent: Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; .NET4.0C; .NET4.0E; InfoPath.3)
APPL_MD_PATH =
APPL_PHYSICAL_PATH = C:\XXXXXXXXX\SimplePrintWeb\
AUTH_TYPE = NTLM
AUTH_USER = XXX\ZZZ
AUTH_PASSWORD =
LOGON_USER = XXX\ZZZ
REMOTE_USER = XXX\ZZZ
CERT_COOKIE =
CERT_FLAGS =
CERT_ISSUER =
CERT_KEYSIZE =
CERT_SECRETKEYSIZE =
CERT_SERIALNUMBER =
CERT_SERVER_ISSUER =
CERT_SERVER_SUBJECT =
CERT_SUBJECT =
CONTENT_LENGTH = 0
CONTENT_TYPE =
GATEWAY_INTERFACE =
HTTPS =
HTTPS_KEYSIZE =
HTTPS_SECRETKEYSIZE =
HTTPS_SERVER_ISSUER =
HTTPS_SERVER_SUBJECT =
INSTANCE_ID =
INSTANCE_META_PATH =
LOCAL_ADDR = 127.0.0.1
PATH_INFO = /print.ashx
PATH_TRANSLATED = C:\XXXXXXXXX\SimplePrintWeb\print.ashx
QUERY_STRING =
REMOTE_ADDR = 127.0.0.1
REMOTE_HOST = 127.0.0.1
REMOTE_PORT =
REQUEST_METHOD = GET
SCRIPT_NAME = /print.ashx
SERVER_NAME = localhost
SERVER_PORT = 50327
SERVER_PORT_SECURE = 0
SERVER_PROTOCOL = HTTP/1.1
SERVER_SOFTWARE =
URL = /print.ashx
HTTP_CONNECTION = Keep-Alive
HTTP_ACCEPT = image/jpeg, application/x-ms-application, image/gif, application/xaml+xml,
image/pjpeg, application/x-ms-xbap, application/x-shockwave-flash, application/vnd.ms-excel,
application/vnd.ms-powerpoint, application/msword, */*
HTTP_ACCEPT_ENCODING = gzip, deflate
HTTP_ACCEPT_LANGUAGE = ja-JP
HTTP_COOKIE = MGUID=MGUID-20090824-153559-47029820; FSUID=FSUID-20091015-135853-4536; __utmmobile=0x4F39C50760C17755
HTTP_HOST = localhost:50327
HTTP_REFERER = http://localhost:50327/
HTTP_USER_AGENT = Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; .NET4.0C; .NET4.0E; InfoPath.3)
著者
iPentecのメインプログラマー
C#, ASP.NET の開発がメイン、少し前まではDelphiを愛用