Проблема PCL Web Lib для приложений WP8.1 RT и Windows 8.1 RT

Я кодирую PCL Web Lib для вызова приложений Windows Phone 8.1 RT и Windows 8.1

Хотя класс HttpWebRequest НЕ может изменять HOST, реферир и т. Д., Работающие с заголовками, - это приложение Windows RT 8.1 (WP8.1 RT работает нормально, в Microsoft это ошибка)

Поэтому я хочу использовать класс HttpClient. Одна проблема UnResolve - как изменить запрос HOST? Я могу установить другой хост без каких-либо исключений. Но на самом деле запрос HOST не применяется. ниже мой код:

 var client = new HttpClient();
 var request = new HttpRequestMessage()
 {
     RequestUri = new Uri("http://www.bing.com"),
     Method = HttpMethod.Get,
 };

client.DefaultRequestHeaders.Host = new HostName("12.34.56.78");
//client.DefaultRequestHeaders.Add("Host", "12.34.56.78");

var respose = await client.SendRequestAsync(request);
var content = await respose.Content.ReadAsStringAsync();

1 ответ

Согласно Википедии, HTTP-заголовок хоста используется для идентификации виртуального хоста на сервере. Я думаю, что вы должны установить IP-адрес на RequestUri и установите для хоста желаемое доменное имя, например:

var client = new HttpClient();
var request = new HttpRequestMessage()
{
     RequestUri = new Uri("http://12.34.56.78/path"),
     Method = HttpMethod.Get,
};

client.DefaultRequestHeaders.Host = new HostName("www.bing.com");

var respose = await client.SendRequestAsync(request);
var content = await respose.Content.ReadAsStringAsync();