Je publie des données JSON dans l'API. Si je publie des données erronées, le bloc catch
n'attrape pas d'erreur. Les contrôles s'arrêtent à using (httpResponse = (HttpWebResponse)httpWebRequest.GetResponse())
et affichent une erreur. Quel mal je fais. Après mon code,Erreur dans httpwebrequest Gestion des exceptions
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;
}
}
Pouvez-vous poster quelques détails sur l'erreur que vous obtenez? Le message, le type de l'exception? –
Utilisez une exception plus générique au lieu de WebException si catch n'attrape PAS. – sachin
Vous rencontrez des exceptions de type exception WebException. Il pourrait être en train de lancer un autre type d'exception, c'est pourquoi il n'est pas pris. Je suggère, vous devez ajouter un autre bloc catch de type générique "Exception". Quelque chose comme ce catch (Exception ex) { objTSPost.status = ex.Message; return objTSPost; } – Majid