如何通过Asp.Net-Core中的主机头进行调用

时间:2016-02-02 17:33:32

标签: asp.net-core

我正在尝试调用服务器,在asp.net核心中传入主机头。我需要能够指定主机的语法是什么?

using (var client = new HttpClient())
{
    client.BaseAddress = new Uri("http://" + server.IPAddress + "/");
    // add host header here - server.HostName
    var response = await client.GetAsync(server.File);
    if (response.IsSuccessStatusCode)
    {
        // handle
    }
}

我正在使用nuget的System.Net.Http来获得DNX支持,但我并不认为这是一个解决方案。

我无法通过IP直接连接,因为IIS上的IP上有多个站点通过主机头进行区分。

在.Net 4中我用过:

var request = WebRequest.Create("http://" + server.IPAddress + "/" + server.File) as HttpWebRequest; 
request.Host = server.HostName; 
var response = (HttpWebResponse)request.GetResponse();
if (response.StatusCode == HttpStatusCode.OK)
{
    // handle
}

(尝试/从代码中省略了捕获)

1 个答案:

答案 0 :(得分:2)

HttpClient.DefaultRequetHeaders Property

using (var client = new HttpClient())
{
    client.BaseAddress = new Uri("http://" + server.IPAddress + "/");
    client.DefaultRequestHeaders.Host = server.HostName;
    var response = await client.GetAsync(server.File);
    if (response.IsSuccessStatusCode)
    {
        // handle
    }
}