none
utilizar api web con c# RRS feed

  • Pregunta

  • buen dia todos , me suscribi a api que da servicio de mensajeria y tiene un metodo que lo utilizare para registrar numero de telefono el proveedor me dio este fragmento de codigo con el cual me indica debo ingresar lo snumero s nuevos pero no se como plasmarlo en mi aplicativo c#:

    este es el metodo :


    POST /APITelNumbers HTTP/1.1

    Host: NiceApi.net

    X-APIId:xxxxxx

    <your unique="" x-apiid="">X-APIInstruction: Add </your>

    <your unique="" x-apiid="">Content-Type: application/x-www-form-urlencoded </your>

    <your unique="" x-apiid="">Content-Length: 22 </your>

    +9122223333+9144445555

    pense que con esto podria funcionar pero no me resulta.

       
    string url = "https://NiceApi.net/API";
    HttpWebRequest request =(HttpWebRequest)WebRequest.Create(url);
    request.Method = "POST";
    request.ContentType = "application/x-www-form-urlencoded";    request.ContentLength = 12;
    request.Headers.Add("X-APIId", yourId);
    request.Headers.Add("X-APIInstruction","Add");
    request.Headers.Add("+51964221700");

    Agradezco de antemano vuestra ayuda.

    Saludos Cordiales.

    Diego.



    • Editado inbetweener viernes, 27 de diciembre de 2019 15:20
    viernes, 27 de diciembre de 2019 15:18

Respuestas

  • hola

    >>pense que con esto podria funcionar pero no me resulta.

    pero obtienes algun mensaje de error ? porque si es asi deberias mencionarlo

    Alli veo que invocas a un /APITelNumbers pero la url que luego defines es https://NiceApi.net/API, eso no es lo mismo, quizas deberia ser

    https://NiceApi.net/API/APITelNumbers o algo asi

    Ademas no veo donde ejecutas el POST o quizas te falto poner codigo en la pregunta

    How to: Send data by using the WebRequest class

    como veras en el articulo te esta faltando el

    Stream dataStream = request.GetRequestStream();

    para ejecutar la accion al servidor

    con el codigo que nos muestras no estas ejecutando nada

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    viernes, 27 de diciembre de 2019 22:13

  • Buen dia.

    Estos son los datos que sirven de ejemplo segun el proveedor del api, mi problema esta en como podria consumir ese metodo "ADD" ya que si puedo enviar mensajes pero no puedo registrar numeros con ese "ADD" porque no se como estructurar el codigo.

    POST /APITelNumbers HTTP/1.1

    Host: NiceApi.net

    X-APIId:xxxxxx

    <your unique="" x-apiid="">X-APIInstruction: Add </your>

    <your unique="" x-apiid="">Content-Type: application/x-www-form-urlencoded </your>

    <your unique="" x-apiid="">Content-Length: 22 </your>

    +9122223333+9144445555


     esta es la seccion que envio para poder consumir esa api me aparece un mensaje :

    ""El valor especificado no tiene un separador ':'.\r\nNombre del parámetro: header"}"

     try
                {
                    string url = "https://NiceApi.net/API";
                    HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
                    request.Method = "POST";
                    request.ContentType = "application/x-www-form-urlencoded";
                    request.ContentLength = 12;
                    request.Headers.Add("X-APIId", yourId);
                    request.Headers.Add("X-APIInstruction","Add");
                    request.Headers.Add("+51964221743");


                    //"+51964221743"
                    using (StreamWriter streamOut = new StreamWriter(request.GetRequestStream()))
                    {

                    }
                    using (StreamReader streamIn = new StreamReader(request.GetResponse().GetResponseStream()))
                    {
                        MessageBox.Show(streamIn.ReadToEnd());
                    }



                }

    lunes, 30 de diciembre de 2019 14:53
  • hola

    >>mi problema esta en como podria consumir ese metodo "ADD"

    es que eso no es ningun metodo, es solo un valor que envias en el header

    no se si conoces lo que es una API REST, no tiene nada que ver con un Web Service o WCF,nada de eso

    las acciones se dan por los verbos Http, cuando realizas un POST a un url, se ejecuta esa accion de post

    Pero esa info deberias ir en el BODY del mensaje, quizas como json, no en el header

    No se quien creo esa API pero la verdad conoce muy poco en como se diseña, porque acciones en el Header no se envian nunca

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    martes, 31 de diciembre de 2019 5:23

Todas las respuestas

  • hola

    >>pense que con esto podria funcionar pero no me resulta.

    pero obtienes algun mensaje de error ? porque si es asi deberias mencionarlo

    Alli veo que invocas a un /APITelNumbers pero la url que luego defines es https://NiceApi.net/API, eso no es lo mismo, quizas deberia ser

    https://NiceApi.net/API/APITelNumbers o algo asi

    Ademas no veo donde ejecutas el POST o quizas te falto poner codigo en la pregunta

    How to: Send data by using the WebRequest class

    como veras en el articulo te esta faltando el

    Stream dataStream = request.GetRequestStream();

    para ejecutar la accion al servidor

    con el codigo que nos muestras no estas ejecutando nada

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    viernes, 27 de diciembre de 2019 22:13

  • Buen dia.

    Estos son los datos que sirven de ejemplo segun el proveedor del api, mi problema esta en como podria consumir ese metodo "ADD" ya que si puedo enviar mensajes pero no puedo registrar numeros con ese "ADD" porque no se como estructurar el codigo.

    POST /APITelNumbers HTTP/1.1

    Host: NiceApi.net

    X-APIId:xxxxxx

    <your unique="" x-apiid="">X-APIInstruction: Add </your>

    <your unique="" x-apiid="">Content-Type: application/x-www-form-urlencoded </your>

    <your unique="" x-apiid="">Content-Length: 22 </your>

    +9122223333+9144445555


     esta es la seccion que envio para poder consumir esa api me aparece un mensaje :

    ""El valor especificado no tiene un separador ':'.\r\nNombre del parámetro: header"}"

     try
                {
                    string url = "https://NiceApi.net/API";
                    HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
                    request.Method = "POST";
                    request.ContentType = "application/x-www-form-urlencoded";
                    request.ContentLength = 12;
                    request.Headers.Add("X-APIId", yourId);
                    request.Headers.Add("X-APIInstruction","Add");
                    request.Headers.Add("+51964221743");


                    //"+51964221743"
                    using (StreamWriter streamOut = new StreamWriter(request.GetRequestStream()))
                    {

                    }
                    using (StreamReader streamIn = new StreamReader(request.GetResponse().GetResponseStream()))
                    {
                        MessageBox.Show(streamIn.ReadToEnd());
                    }



                }

    lunes, 30 de diciembre de 2019 14:53
  • hola

    >>mi problema esta en como podria consumir ese metodo "ADD"

    es que eso no es ningun metodo, es solo un valor que envias en el header

    no se si conoces lo que es una API REST, no tiene nada que ver con un Web Service o WCF,nada de eso

    las acciones se dan por los verbos Http, cuando realizas un POST a un url, se ejecuta esa accion de post

    Pero esa info deberias ir en el BODY del mensaje, quizas como json, no en el header

    No se quien creo esa API pero la verdad conoce muy poco en como se diseña, porque acciones en el Header no se envian nunca

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    martes, 31 de diciembre de 2019 5:23
  • Estimadio Leandro.

    Talves no he dado bien los respectivos datos 

    Esta es la unica docuemntacion que tengop y que es la razon de mi consulta, no tengo experiencia en estos entornos REST sin embargo me es imperativo usar este metodo, de no ser viable como me comentas por el hecho de estar mal estructurado buscare un proveedor que brinde mejor servicio que este .

    Muchas gracias por tu tiempo y disculpa las molestias.

    jueves, 2 de enero de 2020 15:58