httpResponse
- это ответ «Я подключен», а не возвращенный ответ от API, к которому был получен доступ с использованием
using (var streamReader = new StreamReader(httpResponse.GetResponseStream())) {
string result = streamReader.ReadToEnd();
для потоковой передачи результата обратно из API, который был ответом JSONменя почтальон.
Поэтому вместо этого я десериализовал возвращенный JSON в объект и использовал его для проверки правильности, например, так.Сначала мой класс хранения
public class ReturnedJSONModel {
public System.Net.HttpStatusCode statusCode { get; set; }
public string reasonPhrase { get; set; }
}
, затем этот, чтобы заполнить его и обработать ответ (обратите внимание, что это консольная программа, поэтому для сообщения об успехе / неудаче используется Console.WriteLine
.
var httpResponse = (HttpWebResponse)httpWebRequest.GetResponse();
if (httpResponse.StatusCode == HttpStatusCode.OK) {
using (var streamReader = new StreamReader(httpResponse.GetResponseStream())) {
string result = streamReader.ReadToEnd();
ReturnedJSONModel objJSON = JsonConvert.DeserializeObject<ReturnedJSONModel>(result);
switch(objJSON.statusCode) {
case System.Net.HttpStatusCode.Accepted:
Console.WriteLine("Success : " + objJSON.reasonPhrase);
break;
case System.Net.HttpStatusCode.BadRequest:
Console.WriteLine("BadRequest : " + objJSON.reasonPhrase);
break;
case System.Net.HttpStatusCode.ServiceUnavailable:
Console.WriteLine("ServiceUnavailable : " + objJSON.reasonPhrase);
break;
default:
Console.WriteLine("Unknown error : " + objJSON.reasonPhrase);
break;
}
}
} else {
Console.WriteLine("Error StatusCode = " + httpResponse.StatusCode);
}