b w*_*b w 38 c# wcf web-services
在WCF Web服务中,如何读取HTTP/HTTPS请求标头?在这种情况下,我正在尝试确定客户端使用的原始URL主机.这可能位于负载均衡器的X-Forwarded-Host标头中,如果是直接框,则位于Host标头中.
我试过,OperationContext.Current.IncomingMessageHeaders.FindHeader但我认为这是在寻找SOAP标头而不是HTTP标头.
那么,如何读取HTTP头?当然这是一个简单的问题,我错过了一些明显的东西.
编辑 - @ sinfere的答案几乎正是我所需要的.为了完整性,这是我最终得到的:
IncomingWebRequestContext request = WebOperationContext.Current.IncomingRequest;
WebHeaderCollection headers = request.Headers;
string host = null;
if (headers["X-Forwarded-Host"] != null)
host = headers["X-Forwarded-Host"];
else if (headers["Host"] != null)
host = headers["Host"];
else
host = defaulthost; // set from a config value
Run Code Online (Sandbox Code Playgroud)
小智 48
尝试 WebOperationContext.Current.IncomingRequest.Headers
我使用以下代码查看所有标题:
IncomingWebRequestContext request = WebOperationContext.Current.IncomingRequest;
WebHeaderCollection headers = request.Headers;
Console.WriteLine("-------------------------------------------------------");
Console.WriteLine(request.Method + " " + request.UriTemplateMatch.RequestUri.AbsolutePath);
foreach (string headerName in headers.AllKeys)
{
Console.WriteLine(headerName + ": " + headers[headerName]);
}
Console.WriteLine("-------------------------------------------------------");
Run Code Online (Sandbox Code Playgroud)
Sla*_*hot 24
这就是我在Azure WCF Web服务中读取它们的方式.
IncomingWebRequestContext woc = WebOperationContext.Current.IncomingRequest;
string applicationheader = woc.Headers["HeaderName"];
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
51498 次 |
| 最近记录: |