Итак, я новичок в C #, но работал с другими языками. В настоящее время я пишу пользовательский лаунчер MineCraft. Я использую документацию по аутентификации Yggdrasil, чтобы помочь мне в этом. В нем говорится: Если запрос был успешным, сервер ответит:
- Код состояния 200
- Словарь в кодировке JSON в соответствии со спецификациями ниже
Если, однако, запрос не удастся, сервер ответит:
- Соответствующий код состояния HTTP, отличный от 200
- Словарь в кодировке JSON следующего формата:
Я решил первую часть, но во второй части проблема!
HttpWebResponse httpResponse = null;
try
{
httpResponse = (HttpWebResponse)httpWebRequest.GetResponse();
using (StreamReader streamReader = new StreamReader(httpResponse.GetResponseStream()))
{
string result = streamReader.ReadToEnd();
Console.WriteLine(result);
}
}
catch (WebException e)
{
Console.WriteLine(e.ToString());
}
Как видите, если возникает WebException, например, я получаю ошибку 403 Forbidden, я не могу прочитать содержимое. Я просто получаю исключение NullReferenceException.
Итак, вопрос: как получить WebResponse в случае сбоя HttpWebRequest?