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.

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Para llamar a una acción de API desde un proyecto MVC, se puede utilizar la clase HttpClient para crear una solicitud HTTP. Para manejar el caso en que la acción de API tenga dos parámetros, uno en la cabecera y otro en el cuerpo, se puede establecer el parámetro de cabecera utilizando la propiedad HttpClient.DefaultRequestHeaders y agregar el parámetro del cuerpo a la solicitud HTTP.

    Aquí hay un código de muestra para demostrar esto:

    // crear el cliente HTTP
    HttpClient client = new HttpClient();
    
    // establecer el parámetro de cabecera
    client.DefaultRequestHeaders.Add("headerParam", "headerValue");
    
    // crear el parámetro de cuerpo
    var bodyParam = new { param1 = "value1", param2 = "value2" };
    
    // convertir el parámetro de cuerpo a una cadena JSON
    var json = JsonConvert.SerializeObject(bodyParam);
    
    // crear un contenido HTTP a partir de la cadena JSON
    HttpContent content = new StringContent(json, Encoding.UTF8, "application/json");
    
    // hacer una solicitud HTTP POST a la acción de la API
    var response = await client.PostAsync("http://example.com/api/action", content);
    
    // manejar la respuesta
    if (response.IsSuccessStatusCode)
    {
        var result = await response.Content.ReadAsStringAsync();
        // manejar la respuesta satisfactoria
    }
    else
    {
        // manejar la respuesta de error
    }
    

    En este ejemplo, primero creamos una instancia de la clase HttpClient. Luego, establecemos el parámetro de cabecera agregándolo a la propiedad DefaultRequestHeaders. A continuación, creamos el parámetro del cuerpo como un objeto anónimo con dos propiedades. Luego, convertimos el parámetro del cuerpo a una cadena JSON utilizando el método JsonConvert.SerializeObject. Finalmente, creamos una instancia de la clase StringContent a partir de la cadena JSON, que podemos pasar como el cuerpo de la solicitud HTTP cuando hacemos la llamada a la API utilizando el método PostAsync de la clase HttpClient.

    Tenga en cuenta que en este ejemplo asumimos que el parámetro de cabecera es una cadena simple y no un objeto complejo. Si el parámetro de cabecera es un objeto complejo, es posible que deba serializarlo a JSON y establecerlo como un valor de cadena en la propiedad DefaultRequestHeaders.

Comments are closed.