c# - net - restsharp vs httpclient
¿Cómo acceder al cuerpo de solicitud HTTP usando RestSharp? (1)
El cuerpo de solicitud es un tipo de parámetro. Para agregar uno, puede hacer uno de estos ...
req.AddBody(body);
req.AddBody(body, xmlNamespace);
req.AddParameter("text/xml", body, ParameterType.RequestBody);
req.AddParameter("application/json", body, ParameterType.RequestBody);
Para recuperar el parámetro body, puede buscar elementos en la colección req.Parameters
, donde Type
es igual a ParameterType.RequestBody
.
Vea el código para la clase RestRequest
aquí .
Esto es lo que los documentos de RestSharp en ParameterType.RequestBody
tienen que decir:
Si se establece este parámetro, su valor se enviará como el cuerpo de la solicitud. El nombre del Parámetro se ignora, y también lo son los Parámetros RequestBody adicionales: solo se acepta 1.
RequestBody solo funciona en POST o PUT Requests, ya que solo ellos realmente envían un cuerpo.
Si también tiene parámetros de GetOrPost, sobrescribirá RequestBody - RestSharp no los combinará, pero en su lugar descartará el parámetro RequestBody.
Para leer / actualizar el parámetro del cuerpo sobre la marcha, puede intentar:
var body = req.Parameters.Where(p => p.Type == ParameterType.RequestBody).FirstOrDefault();
if (body != null)
{
Console.WriteLine("CurrentBody={0}", body.Value);
body.Value = "NewBodyValue";
}
O en su defecto, cree una nueva copia del objeto RestRequest
con un cuerpo diferente.
Estoy construyendo un cliente API RESTful en C # .NET 3.5.
Empecé a construirlo con el viejo HttpWebClient
(y HttpWebResponse
), podía hacer lo que quisiera. Yo estaba feliz Lo único que me quedé atrapado fue la deserialización automática de la respuesta JSON.
Por lo tanto, he oído hablar de una maravillosa biblioteca llamada RestSharp (104.1) que facilita el desarrollo de los clientes RESTful API y deserializa automáticamente las respuestas JSON y XML. Cambié todo mi código, pero ahora me doy cuenta de que no puedo hacer cosas que pueda hacer con HttpWebClient
y HttpWebResponse
, como acceder y editar el cuerpo de solicitud sin procesar.
Alguien tiene una solución?
Editar: Sé cómo configurar el cuerpo de la solicitud (con request.AddBody()
), mi problema es que quiero obtener esta cadena de cuerpo de solicitud, editarla y volver a establecerla en la solicitud (actualizando el cuerpo de la solicitud en el mosca)