es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Cómo formar el cuerpo de una solicitud de RestSharp para un arreglo de objetos.

Necesito consumir un punto final que tiene una estructura de solicitud de matriz de objetos JSON. Ya lo he probado en un cliente REST. El problema es que no puedo formar el cuerpo de la solicitud en RestSharp.

A continuación se muestra la estructura JSON:

[
  {
    "id": "1",
    "name": "rejected",
    "timestamp": "2021-10-07T16:47:37Z",
    "identity": "MainId",
    "source": "web",
    "params": {
      "email": "johndoe@doe.com",
      "fullName": "John Doe",
      "Mobile": "444586867857"
    }
  }
]

También he creado la clase POCO:

public class activityClass
{
    public Class1[] Property1 { get; set; }
}

public class Class1
{
    public string id { get; set; }
    public string name { get; set; }
    public DateTime timestamp { get; set; }
    public string identity { get; set; }
    public string source { get; set; }
    public Params _params { get; set; }
}

public class Params
{
    public string email { get; set; }
    public string fullName { get; set; }
    public string Mobile { get; set; }
}

Aquí está el código para llamar al punto final:

csharp
var client = new RestClient("http://api.tech.com/apiv2");
var request = new RestRequest(Method.POST);
// AQUÍ ES DONDE ESTÁ EL PROBLEMA
var body = new activityClass
{
Property1 = new List<class1>
{
new Class1
{
id = "1",
name = "rejected",
timestamp = DateTime.Parse("2021-10-07T16:47:37Z"),
identity = "MainId",
source = "web",
_params = new Params
{
email = "johndoe@doe.com",
fullName = "John Doe",
Mobile = "444586867857"
}
}
}
};
var json = request.JsonSerializer.Serialize(body);
request.AddParameter("application/json", json, ParameterType.RequestBody);
IRestResponse response = client.Execute(request);

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Para formar el cuerpo de la solicitud en RestSharp para un arreglo JSON de objetos, puedes seguir estos pasos:

    1. Crea una clase POCO que coincida con la estructura del arreglo JSON de objetos. En este caso, ya has creado la clase POCO activityClass con las clases anidadas Class1 y Params.
    2. Crea una instancia de la clase activityClass e inicializa sus propiedades con los datos que deseas enviar en la solicitud. En este caso, tienes una lista vacía de objetos Class1.

    3. Utiliza la propiedad JsonSerializer del objeto RestRequest para serializar el cuerpo de la solicitud como JSON.

    4. Agrega la cadena JSON serializada a los parámetros de la solicitud con un tipo de contenido “application/json”.

    Aquí tienes un ejemplo de código para ayudarte con esto:

    var client = new RestClient("http://api.tech.com/apiv2");
    var request = new RestRequest(Method.POST);
    var body = new activityClass
    {
        Property1 = new[]
        {
            new Class1
            {
                id = "1",
                name = "rejected",
                timestamp = DateTime.UtcNow,
                identity = "MainId",
                source = "web",
                _params = new Params
                {
                    email = "johndoe@doe.com",
                    fullName = "John Doe",
                    Mobile = "444586867857"
                }
            }
        }
    };
    string json = request.JsonSerializer.Serialize(body);
    request.AddParameter("application/json", json, ParameterType.RequestBody);
    IRestResponse response = client.Execute(request);
    

    En este fragmento de código, hemos creado una instancia de la clase activityClass con un objeto Class1 que contiene datos de muestra. Luego serializamos la instancia de activityClass a una cadena JSON y la agregamos a los parámetros de la solicitud con el tipo de contenido “application/json”. Finalmente, ejecutamos la solicitud con el método Execute() de la clase RestClient.

Comments are closed.