Я отправляю данные JSON в API. Если я отправляю неверные данные, то catch
блок не поймает ошибку. Элементы управления останавливаются на using (httpResponse = (HttpWebResponse)httpWebRequest.GetResponse())
этой точке и показывают ошибку. Что плохого я делаю. Ниже мой код,Ошибка в httpwebrequest Обработка исключений
try
{
ServicePointManager.ServerCertificateValidationCallback = new System.Net.Security.RemoteCertificateValidationCallback(AcceptAllCertifications);
var httpWebRequest = (HttpWebRequest)WebRequest.Create("ipaddress");
httpWebRequest.Credentials = new NetworkCredential("", "");
httpWebRequest.ContentType = "application/json";
httpWebRequest.Method = "POST";
using (var streamWriter = new StreamWriter(httpWebRequest.GetRequestStream()))
{
string name = objTSPost.name;
string servicetype = objTSPost.service_type;
string json = "{\"name\":\"VMR_" + name + "\"," +
"\"service_type\":\"" + servicetype + "\"}";
streamWriter.Write(json);
streamWriter.Flush();
streamWriter.Close();
}
using (httpResponse = (HttpWebResponse)httpWebRequest.GetResponse())
{
using (var streamReader = new StreamReader(httpResponse.GetResponseStream()))
{
var result = streamReader.ReadToEnd();
}
string str = "{\"name\":\"VMR_" + objTSPost.name + "\"," +
"\"service_type\":\"" + objTSPost.service_type + "\"}";
var data = JsonConvert.DeserializeObject<TSGetRootObject>(str);
data.status = ((HttpWebResponse)httpResponse).StatusDescription;
return data;
}
}
catch (WebException ex)
{
objTSPost.status = ex.Message;
return objTSPost;
}
}
Не могли бы вы предоставить дополнительные сведения об ошибке, которую вы получаете? Сообщение, тип исключения? –
Используйте более общее исключение вместо WebException, если catch не является ловушкой. – sachin
Вы используете только исключения типа webexception. Это может быть бросок какого-то другого исключения, поэтому его не поймали. Я предлагаю вам добавить еще один блок catch универсального типа «Исключение». Что-то вроде этого catch (Exception ex) { objTSPost.status = ex.Message; return objTSPost; } – Majid