Je viens de recevoir cette exception (ProtocolViolationException) dans mon application .NET 2.0 (fonctionnant sur l'émulateur standard Windows Mobile 6). Ce qui me trouble, c'est que pour autant que je sache, je n'ai ajouté aucun corps de contenu, sauf si je l'ai fait par inadvertance. Mon code est ci-dessous (très simple). Dois-je faire autre chose pour convaincre .NET qu'il ne s'agit que d'un http GET?
Merci, Brian
//run get and grab response
WebRequest request = WebRequest.Create(get.AbsoluteUri + args);
request.Method = "GET";
Stream stream = request.GetRequestStream(); // <= explodes here
XmlTextReader reader = new XmlTextReader(stream);
la source
HttpClient
etHttpRequestMessage
?J'ai eu le même problème avec Flurl.Http:
Flurl.Http.FlurlHttpException: Call failed. Cannot send a content-body with this verb-type. GET http://******:8301/api/v1/agents/**** ---> System.Net.ProtocolViolationException: Cannot send a content-body with this verb-type.
Le problème était que j'avais utilisé
.WithHeader("Content-Type", "application/json")
lors de la création de IFlurlRequest.la source
Parce que vous n'avez pas spécifié l'en-tête.
J'ai ajouté un exemple étendu:
En-tête (demande de référence, p_Method);
Et la méthode Header:
la source
Veuillez définir le type de contenu de la demande avant de lire le flux de réponse;
la source