我正在尝试调用服务器,在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
}
(尝试/从代码中省略了捕获)
答案 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
}
}