httpReq.Headersは、 ASP.NET HttpRequest.HeadersまたはセルフホスティングHttpListenerRequest.Headersから取得するインスタンスとまったく同じです。
したがって、下にあるリクエストを手動でキャストして直接アクセスするのとまったく同じです。たとえば、次のようになります。
HttpRequest ヘッダー
ASP.NET の場合
var aspNetRequestHeaders = ((HttpRequest)httpReq.OriginalRequest).Headers;
HttpListener の場合:
var httpListenerHeaders = ((HttpListenerRequest)httpReq.OriginalRequest).Headers;
HttpResponse ヘッダー
現在IHttpResponseで公開されている Headers コレクションはないため、同様の方法を使用して、基になる HTTP 応答オブジェクトからそれらにアクセスする必要があります。独自の Extension メソッドで簡単にラップできますが、たとえば次のようになります。
public static NameValueCollection GetHeaders(this IHttpResponse)
{
var aspNetResponseHeaders = httpReq.OriginalResponse as HttpResponse;
return aspNetResponseHeaders != null
? aspNetResponseHeaders.Headers
: ((HttpListenerResponse)httpReq.OriginalResponse).Headers; //Http Listener
}