Acabo de recibir esta excepción (ProtocolViolationException) en mi aplicación .NET 2.0 (que se ejecuta en el emulador estándar de Windows Mobile 6). Lo que me confunde es que, hasta donde yo sé, no he agregado ningún cuerpo de contenido, a menos que lo haya hecho de alguna manera sin darme cuenta. Mi código está abajo (muy simple). ¿Hay algo más que deba hacer para convencer a .NET de que esto es solo un http GET?
Gracias 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);
fuente
HttpClient
yHttpRequestMessage
?Tuve un problema similar al usar 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.
El problema fue que utilicé
.WithHeader("Content-Type", "application/json")
al crear IFlurlRequest.fuente
Porque no especificaste el encabezado.
He agregado un ejemplo extendido:
Encabezado (solicitud de referencia, p_Method);
Y el método Header:
fuente
Establezca el tipo de contenido de la solicitud antes de leer el flujo de respuesta;
fuente