目次

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を愛用
掲載日: 2010-10-25
iPentec all rights reserverd.