Я использую HttpClient
, чтобы поговорить с API. Сервер будет автоматически перенаправлять http://
запросы на https://
, если они включены. Поэтому, чтобы защитить ключ API пользователей, я хочу создать тестовое соединение с веб-сайтом, чтобы проверить, перенаправлен ли я перед отправкой через API-ключ.Как узнать, подключен ли HttpClient через HTTPS
HttpClient
перенаправляет правильно, но я не могу найти подходящий способ узнать, использует ли клиент HTTPS или нет. Я знаю, что я могу проверить, существует ли https://
в response.RequestMessage.RequestUri
, но это, кажется, немного слоеное
public void DetectTransportMethod()
{
using (HttpClient client = new HttpClient())
{
client.Timeout = TimeSpan.FromSeconds(20);
using (HttpResponseMessage response = client.GetAsync(this.HttpHostname).Result)
{
using (HttpContent content = response.Content)
{
// check if the method is HTTPS or not
}
}
}
}
Вместо использования 'message.RequestMessage.RequestUri.ToString() ToLower() StartsWith ("https: //").. 'Вы можете просто использовать' message.RequestMessage.RequestUri.Scheme == «HTTPS "' –
Хороший улов, спасибо! – TheDutchDevil