Ich habe gerade diese Ausnahme (ProtocolViolationException) in meiner .NET 2.0-App (ausgeführt unter Windows Mobile 6 Standard Emulator) erhalten. Was mich verwirrt ist, dass ich meines Wissens keinen Inhaltskörper hinzugefügt habe, es sei denn, ich habe es versehentlich irgendwie getan. Mein Code ist unten (sehr einfach). Muss ich noch etwas tun, um .NET davon zu überzeugen, dass dies nur ein http GET ist?
Danke, 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);
quelle
HttpClient
und zu sendenHttpRequestMessage
?Ich hatte das ähnliche Problem mit 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.
Das Problem wurde
.WithHeader("Content-Type", "application/json")
beim Erstellen von IFlurlRequest verwendet.quelle
Weil Sie den Header nicht angegeben haben.
Ich habe ein erweitertes Beispiel hinzugefügt:
Header (Ref-Anfrage, p_Method);
Und die Methode Header:
quelle
Bitte legen Sie den Inhaltstyp der Anforderung fest, bevor Sie den Antwortstrom lesen.
quelle