[c#] WebApi: consumir un metodo GET pasandon parametros con objectos complejos [FromBoby]

527 views
Skip to first unread message

HolguinSoft S.A

unread,
May 29, 2014, 9:26:58 AM5/29/14
to Dario Quintana
Hola Colegas

Los molesto por lo siguente, estoy usando WebApi y se me presenta que debo pasar a una accion [HttpGet] un parametro como objecto complejo, hasta el momento solo a los Get le pasaba un parámetro simple, pero ahora no se como pasar y consumir una acción Get.

Para consumir las acciones Get del WebApi estoy usando la clase httpClient y el método GetAsyn

[HttpGet]    
public IEnumerable<ObjetoDTO> GetPirulo(ObjetoParam param) {...}

e visto en algunos link de Internet que una opcion a usar seria marcar con el atributo [FromBoby]:
[HttpGet]    
public IEnumerable<ObjetoDTO> GetPirulo([FromBody] ObjetoParam param) {...}

pero no logro hacerlo funcionar, si algún colega tiene una idea de como resolver este tema, se lo agradezco

Saludos  
 

Alejandro Miralles

unread,
May 29, 2014, 9:42:20 AM5/29/14
to Dario Quintana

Habría que ver el código estas utilizando para ejecutar el get. Para mí te falta algo por ese lado (he utilizado [FormBody] y funciona correctamente).

 

Saludos, Ale Miralles.

http://amiralles.net

Diego Cepero

unread,
May 29, 2014, 9:45:48 AM5/29/14
to Dario Quintana

Alejandro,

 

                Creo que [FromBody] no aplica al GET, porque no tiene cuerpo. Probá usando [FromUri] en su lugar.

                Un saludo.

Alejandro Miralles

unread,
May 29, 2014, 10:03:46 AM5/29/14
to Dario Quintana

Sabes que ahora me haces dudar che…. Creo que lo he utilizado alguna vez porque la url que tenia que pasar por parametro era muy larga (mas de 65K) y no quedaba otra opción… Estuve buscando el código pero no lo puedo encontrar…

Estoy casi seguro de que funciona, pero obviamente me puedo equivocar.

 

Saludos, Ale Miralles

http://amiralles.net

HolguinSoft S.A

unread,
May 29, 2014, 10:25:45 AM5/29/14
to Dario Quintana
Alejandro

Muchas Gracias por tu respuesta. 

El tema del usar el atributo [FromBody] lo vi en la pagina oficial de aspnet (http://www.asp.net/), la joda es que no dan un ejemplo completo de como usar la parte cliente, que seria donde se me esta complicando. Tienes algun ejemplito como como usas [FromBoby] en la parte cliente que me puedas pasar?

Saludos         


El día jueves, 29 de mayo de 2014 11:11, Alejandro Miralles <in...@amiralles.com.ar> escribió:
Sabes que ahora me haces dudar che…. Creo que lo he utilizado alguna vez porque la url que tenia que pasar por parametro era muy larga (mas de 65K) y no quedaba otra opción… Estuve buscando el código pero no lo puedo encontrar…
Estoy casi seguro de que funciona, pero obviamente me puedo equivocar.
 
Saludos, Ale Miralles
 
From: c#@mug.org.ar [mailto:c#@mug.org.ar] On Behalf Of Diego Cepero
Sent: jueves, 29 de mayo de 2014 10:45 a.m.
To: Alejandro Miralles
Subject: [c#] WebApi: consumir un metodo GET pasandon parametros con objectos complejos [FromBoby]
 
Alejandro,
 
                Creo que [FromBody] no aplica al GET, porque no tiene cuerpo. Probá usando [FromUri] en su lugar.
                Un saludo.
 
De: c#@mug.org.ar [mailto:c#@mug.org.ar] En nombre de Alejandro Miralles
Enviado el: jueves, 29 de mayo de 2014 10:42 a.m.
Para: Diego Cepero
Asunto: [c#] WebApi: consumir un metodo GET pasandon parametros con objectos complejos [FromBoby]
 
Habría que ver el código estas utilizando para ejecutar el get. Para mí te falta algo por ese lado (he utilizado [FormBody] y funciona correctamente).
 
Saludos, Ale Miralles.

Alejandro Miralles

unread,
May 29, 2014, 12:18:58 PM5/29/14
to Dario Quintana

Sabes que terminé armando un ejemplo utilizando [FromUri]. (Como sugirió Diego)

Te paso un .zip con una solución (WebApi + console app utilizando httpclient).

http://1drv.ms/1nxA25q

 

Por lo que estuve viendo en la web, se puede utilizar [FromBody], pero es una muy mala práctica para hacer HTTP GET . Asique mejor vamos por otro camino. Mala mía ;)

(Estuve viendo el código que les comentaba en un mail anterior y en su momento nosotros lo resolvimos con sockets a manopla del lado del cliente. Una locura).

 

Saludos, Ale Miralles

http://amiralles.net

 

Reply all
Reply to author
Forward
0 new messages