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 enviar una cadena JSON al método HttpPost en C#?

Tengo dos controladores A (controlador MVC) y B (controlador API). Quiero enviar un objeto de A a B.

Lo que hice fue serializar el objeto en una cadena. Solo quería probar si el método httppost en el controlador B está capturando o no la solicitud.

Entonces, extraje la cadena JSON del método de acción en A y probé el método httppost en B usando postman.

Aquí está el método de acción del controlador A:

public IActionResult addsonglyrics([FromForm] AddASongViewModel AddASong)
{
    string songdatatosend = JsonConvert.SerializeObject(AddASong);
    // var jsonSongData = new StringContent(songdatatosend, UnicodeEncoding.UTF8, "application/json");
    var contactgetmylyricsFindSong = new HttpClient();
    contactgetmylyricsFindSong.BaseAddress = new Uri("http://localhost:65302/api/getmylyrics");
    var resultofSendSong = contactgetmylyricsFindSong.PostAsJsonAsync("addasonglyric?addmysong",songdatatosend);
    // var resultofSendSong = contactgetmylyricsFindSong.PostAsync("http://localhost:65302/api/getmylyrics/addasonglyric?addmysong",jsonSongData);
    return Ok(resultofSendSong.Result);
    // return View(addsong);
    return View(resultofSendSong.Result);
}

Aquí está el método de acción POST de HTTP del controlador B:

“`
public IActionResult addsonglyrics(string addmysong=null)
{
return Ok(addmysong); // mostrando null en esta declaración

// Hacer algún trabajo
}

Intenté pasar el siguiente JSON:

{
“lyricsmetadata”:{
“lid”:0,
“lyricsId”:null,
“lyricist”:null,
“songName”:”Harima Harima”,
“songArtist”:”KK, Swarnalatha”,
“songFromMovie”:{
“mid”:0,
“movieId”:null,
“movieName”:”Robo”,
“director”:”Shankar”,
“musicdirector”:”AR Rahman”,
“dateOfRelease”:”2010-06-30T00:00:00″,
“cast”:null
},
“genre”:”romance”,
“songLanguage”:”Telugu”,
“LyricsOfTheSong”:”addmysong”
},
“castLeads”:{
“cid”:0,
“castId”:null,
“actor”:”Rajini”,
“actress”:”Aish”
}
}

como “texto” y “JSON” en postman.

¿Qué me faltó?

Tags:  , , , ,

Answer

  1. Avatar for davy.ai

    Parece que estás intentando enviar un objeto desde tu controlador MVC (A) a tu controlador de API (B) a través de una solicitud HTTP POST. Has serializado el objeto en una cadena y has probado el método HTTP POST en B usando Postman.

    Has proporcionado el método de acción del controlador A y el método de acción HTTP POST del controlador B. También has intentado pasar una cadena JSON como “texto” y “JSON” en Postman.

    Es posible que el problema esté relacionado con la forma en que estás enviando los datos. Es posible que desees intentar enviar los datos como un objeto JSON en lugar de una cadena. Puedes hacer esto usando el método PostAsJsonAsync en lugar del método PostAsync.

    También puede que desees revisar los parámetros del método addsonglyrics en el controlador B para asegurarte de que estén configurados correctamente para aceptar los datos que estás enviando.

Comments are closed.