Je le code suivant pour faire un appel à son tour retourne xml:System.Net.WebException: Le serveur a commis une violation du protocole
private string Send(string url)
{
try
{
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
using (HttpWebResponse response = (HttpWebResponse)request.GetResponse())
{
using (Stream stream = response.GetResponseStream())
{
using (StreamReader reader = new StreamReader(stream))
{
return reader.ReadToEnd();
}
}
}
}
catch (WebException ex)
{
var _status = ex.Status.ToString();
if (ex.Status == WebExceptionStatus.ProtocolError)
{
_status = ((HttpWebResponse)ex.Response).StatusCode.ToString();
}
Trace.WriteLine(_status.ToString());
}
return "error";
}
La plupart du temps (pas toujours) Je reçois
System.Net.WebException: le serveur a commis une violation de protocole.
Section = ResponseStatusLine à System.Net.HttpWebRequest.GetResponse()
exception levée.
J'ai ajouté à mon App.config directement dans la section <configuration>
:
<system.net>
<settings>
<httpWebRequest useUnsafeHeaderParsing="true"/>
</settings>
</system.net>
Mais je continue à obtenir l'erreur.
Quelle est votre cible/URL? http/https? Quel type de serveur est à la destination, juste n'importe quel serveur http? Vous essayez d'utiliser Fiddler pour vérifier quelles sont les étapes de communication. Voir également http://stackoverflow.com/questions/2482715/the-server-committed-a-protocol-violation-section-responsestatusline-error – gerleim