none
¿Como recibir un request de tipo POST? RRS feed

  • Pregunta

  • Me estoy conectando a una api la cual me pide como paso final recibir la notificación de status por medio de un POST, es decir la api me manda un request en tipo POST. He desarrollado un web servise en tipo .asmx

    [WebService(Namespace = " http://tempuri.org/")]
    [WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
    [System.ComponentModel.ToolboxItem(false)]
    // To allow this Web Service to be called from script, using ASP.NET AJAX, uncomment the following line. 
    // [System.Web.Script.Services.ScriptService]
    public class confirma : System.Web.Services.WebService
    {
    
        [WebMethod(EnableSession = true)]
        [ScriptMethod(UseHttpGet = true)]
        public void pruebaC(string resp)
        {
            //Mi código que recibe los datos por post
            HttpCookie ConfirmaP = new HttpCookie("contiC");
            ConfirmaP["datos"] = "Resp " + resp;
            ConfirmaP.Expires = DateTime.Now.AddMinutes(10);
            HttpContext.Current.Response.Cookies.Add(ConfirmaP);
        }
    }
    La documentación de la api me dice que a la ruta que yo le mando en un parámetro 'x' me estara llegando un request tipo post. (myRuta) Es mi ruta que le mando y donde se aloja mi services. Dentro de pruebaC intento guardar la respuesta pero independientemente de eso jamas llego hasta ahi. ¿Como puedo recibir el POST de la api?.

    jueves, 4 de octubre de 2018 18:27

Respuestas

  • hola

    >>entro de pruebaC intento guardar la respuesta pero independientemente de eso jamas llego hasta ahi.

    no entendi lo de pruebaC

    desde al api como invocas al servicio web ? creaste una web reference

    >>¿Como puedo recibir el POST de la api?.

    esta confuso, ademas de la api y el servicio web tienes otro cliente ? o sea un cliente qe invoca por post a la api?

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    viernes, 5 de octubre de 2018 3:45
  • Hola, lo primero si quieres generar una acción de tipo POST, debes de cambiar el decorador de tu método 

        [ScriptMethod(UseHttpGet = false)]

    Leyendo tu pregunta, parece ser que implementa un WebHook. Has analizado el requerimiento de dicha Api? Puedes explicarnos? Por qué te has decidido a montar un servicio con tecnología obsoleta? Conoces REST Api? 


    Si se solucionó tu consulta no olvides marcar la respuesta. Si te ayudó, vótala como útil. Saludos

    viernes, 5 de octubre de 2018 23:07
    Moderador

Todas las respuestas

  • hola

    >>entro de pruebaC intento guardar la respuesta pero independientemente de eso jamas llego hasta ahi.

    no entendi lo de pruebaC

    desde al api como invocas al servicio web ? creaste una web reference

    >>¿Como puedo recibir el POST de la api?.

    esta confuso, ademas de la api y el servicio web tienes otro cliente ? o sea un cliente qe invoca por post a la api?

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    viernes, 5 de octubre de 2018 3:45
  • Hola, lo primero si quieres generar una acción de tipo POST, debes de cambiar el decorador de tu método 

        [ScriptMethod(UseHttpGet = false)]

    Leyendo tu pregunta, parece ser que implementa un WebHook. Has analizado el requerimiento de dicha Api? Puedes explicarnos? Por qué te has decidido a montar un servicio con tecnología obsoleta? Conoces REST Api? 


    Si se solucionó tu consulta no olvides marcar la respuesta. Si te ayudó, vótala como útil. Saludos

    viernes, 5 de octubre de 2018 23:07
    Moderador
  • Hola, soy nuevo en las apis así que tratare de explicarlo mejor

    Tengo una documentación de una Api "X", dicha documentación me pide.

    1.- Enviar por POST una solicitud "X" con lo siguiente

        Headers:

           header1.

           header2.

        Body:

           {

               "Dato1":"1",

                "Dato2":"2",

                "BackURL":"https://ejemplo..."

                .

                . 

            }

    2.Si todo esta ok la respuesta es otro JSON con un status pendiente(parámetro dentro del JSON) y automáticamente me enviara a la pagina "oficial" de la api, en donde un cliente se loguea.

    3. Si todo va ok, en el ultimo click de loguin me mandaran una petición POST a la url que yo pongo en el parámetro BackURL de la primer petición que hago. 

    4. Tengo que crear un "Algo" que reciba el POST para guardar el parámetro de confirmación que viene en el POST que me manda la api ya que hasta este punto esta como pendiente.

    En este ultimo paso es donde estoy tratando de hacer lo ya mencionado(Recibir un POST de la api). Lo hago así por que soy nuevo con lo de las APIS. Por ahora entiendo como funcionan y un par de formas para invocar WebService. Pero no se como recibir un POST.

    Lo que hice es un Web Service (ASMX) en Visual Studio lo subí a un servidor y la url de este es la que mando a la API. Creí que ahí podría recibir el post para despues almacenarlo en una cookie  o en BD

    
      public void pruebaC(string resp)
        {
            //Mi código que recibe los datos por post
            HttpCookie ConfirmaP = new HttpCookie("contiC");
            ConfirmaP["datos"] = "Resp " + resp;
            ConfirmaP.Expires = DateTime.Now.AddMinutes(10);
            HttpContext.Current.Response.Cookies.Add(ConfirmaP);
        }

    Pero no lo logro y por lo que he investigado solo encuentro como comunicarme a un webservice o una api. Es por eso que llegue a este Foro

    Espero que haya sido mas claro lo que requiero.

    Saludos

    miércoles, 10 de octubre de 2018 16:52