Saltar al contenido

No se puede enviar un cuerpo de contenido con este tipo de verbo

Hola, descubrimos la respuesta a tu interrogante, continúa leyendo y la encontrarás aquí.

Solución:

No obtenga el flujo de solicitud, simplemente. Las solicitudes GET no por lo general tener cuerpos (aunque no está técnicamente prohibido por HTTP) y WebRequest no lo admite, pero eso es lo que llama GetRequestStream es para proporcionar datos del cuerpo para la solicitud.

Dado que estás tratando de leer de la corriente, me parece que realmente quieres obtener el respuesta y lea el flujo de respuesta de eso:

WebRequest request = WebRequest.Create(get.AbsoluteUri + args);
request.Method = "GET";
using (WebResponse response = request.GetResponse())

    using (Stream stream = response.GetResponseStream())
    
        XmlTextReader reader = new XmlTextReader(stream);
        ...
    

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 usé .WithHeader("Content-Type", "application/json") al crear IFlurlRequest.

Porque no especificaste el encabezado.

He añadido un ejemplo extendido:

var request = (HttpWebRequest)WebRequest.Create(strServer + strURL.Split('&')[1].ToString());

Encabezado (solicitud de referencia, p_Method);

Y el encabezado del método:

private void Header(ref HttpWebRequest p_request, string p_Method)

    p_request.ContentType = "application/x-www-form-urlencoded";
    p_request.Method = p_Method;
    p_request.UserAgent = "Mozilla/4.0 (compatible; MSIE 6.0; Windows CE)";
    p_request.Host = strServer.Split('/')[2].ToString();
    p_request.Accept = "*/*";
    if (String.IsNullOrEmpty(strURLReferer))
    
        p_request.Referer = strServer;
    
    else
    
        p_request.Referer = strURLReferer;
    
    p_request.Headers.Add("Accept-Language", "en-usrn");
    p_request.Headers.Add("UA-CPU", "x86 rn");
    p_request.Headers.Add("Cache-Control", "no-cachern");
    p_request.KeepAlive = true;

Si sostienes algún titubeo o forma de arreglar nuestro escrito te sugerimos ejecutar una glosa y con mucho placer lo leeremos.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *