Я пытаюсь использовать API на api.pwnedpasswords.com
Требуется, чтобы я сделал запрос GET через HTTPS
Это хорошо работает с использованием метода WebClients OpenRead (), но этотребует от меня иметь дело с streamReader.
Я хочу использовать метод DownloadStringTaskAsync () вместо него, но он продолжает пытаться сначала открыть туннель, который не работает с этим API, поэтому запрос не выполняется
Я попробовал то, что было предложено здесь и здесь , но это не решает мою проблему.
Вопрос: Как сделатьЯ получаю WebClient.DownloadString для выдачи GET-запроса?
Не работает - с помощью DownloadStringTaskAsync
WebClient wc = new WebClient();
wc.Encoding = Encoding.UTF8;
webClient.Headers.Add("UserAgent", "Backend; PasswordChange");
var response = await wc.DownloadString($"https://api.pwnedpasswords.com/range/{prefix}");
if (response.IndexOf(hash.Substring(5), StringComparison.OrdinalIgnoreCase) > -1)
return BadRequest"Password not allowed. Please choose a more secure one.");
Код работает - с помощью OpenRead
WebClient wc = new WebClient();
webClient.Headers.Add("UserAgent", "Backend; PasswordChange");
Stream stream = wc.OpenRead($"https://api.pwnedpasswords.com/range/{prefix}");
using (StreamReader reader = new StreamReader(stream, Encoding.UTF8))
{
string hashList = await reader.ReadToEndAsync();
var stuff = hashList.IndexOf(postfix, StringComparison.OrdinalIgnoreCase);
if (hashList.IndexOf(postfix, StringComparison.OrdinalIgnoreCase) >= 0)
return BadRequest("Password not allowed. Please choose a more secure one.");
}