2017-05-10 1 views
0
 var url = ConfigurationManager.AppSettings["URL"] + "/Archivador/MoverEnvio"; 

     HttpWebRequest req = (HttpWebRequest)WebRequest.Create(url); 

     if (Certificado != null) 
     { 
      // Y añadirlo a la petición HTTP 
      req.ClientCertificates.Add(Certificado); 
     } 

     req.Method = "PUT"; 
     req.ContentType = "application/json"; 

     ArchivadorModelPut Mover = new ArchivadorModelPut() 
     { 
      ID_ARCHIVADOR = idArchivador, 
      ID_ENVIO = idEnvio 

     }; 
     using (var streamWriter = new StreamWriter(req.GetRequestStream())) 
     { 
      string json = JsonConvert.SerializeObject(Mover); 

      streamWriter.Write(json); 
      streamWriter.Flush(); 
      streamWriter.Close(); 
     } 
     using (HttpWebResponse resp = (HttpWebResponse)req.GetResponse()) 
     { 
      StreamReader reader = new StreamReader(resp.GetResponseStream()); 
      var dato = reader.ReadToEnd(); 
      string returnString = resp.StatusCode.ToString(); 
     } 

Je suis arrivé cette exception:
System.Net.WebException: 'Erreur sur le serveur distant: (400) Bad Request.'
En ligne:
utilisant (resp HttpWebResponse = (HttpWebResponse) req.GetResponse())
Je ne sais pas comment résoudre le problème, quelqu'un peut me aider?
Si vous désirez plus d'informations à propos de cela, faites-le moi savoir.C# System.Net.WebException: 'Erreur sur le serveur distant: (400) Demande incorrecte.' - HttpWebResponse

+0

Vous venez de créer l'objet de requête mais vous ne l'avez pas encore appelé. – Gururaj

Répondre

0

Cette exception signifie que la demande a été effectuée avec succès, mais une réponse HTTP 400 a été renvoyée. Une réponse HTTP 400 signifie normalement que votre client n'a pas envoyé les données correctes, mais il est complètement à la hauteur du serveur de destination dans quelles circonstances une réponse 400 serait retournée.

Si vous prenez le WebException vous pouvez utiliser la propriété Response regarder la réponse HTTP - en fonction du serveur, il peut contenir une description de l'erreur.

S'il est normal que le service de destination renvoie une réponse 400, jetez un coup d'œil à Why does HttpWebRequest throw an exception instead returning HttpStatusCode.NotFound? pour connaître la méthode d'extension qui peut être utilisée pour obtenir la réponse, quel que soit le code d'état. Vous pouvez également utiliser une classe alternative qui ne lance pas, par ex. HttpClient.

+0

Merci pour votre commentaire, c'était très utile! @Justin –