none
Consumo servicio wep api get RRS feed

  • Pregunta

  • Buenas noches

    Estoy consumiendo un servicio get donde le envio en el body un json, el codigo es el siguiente:  (queme los valores para simplificar)

                

     

    public string LLamarServicio()         {             var httpClient = new HttpClient();             string url = "https://cosabog06xz023.colxyz.com/COAP179/REST/GenerarToken";             var httpRequestMessage = new HttpRequestMessage(HttpMethod.Get, url);             httpRequestMessage.Headers.Add("Body", string.Format("Bearer {0}", "   

      {\"MENSAJE\":\"Mensaje\",\"CLAVE\":\"Clave\"}"));             var httpResponse = httpClient.SendAsync(httpRequestMessage).Result;             var responseJsonString = httpResponse.Content.ReadAsStringAsync();           return responseJsonString (); }


    He hecho este codigo varias veces para otros servicios pero en este no funciona la unica diferencia es en la URL que falla  tiene HTTPS

    los otros que si funcionan son HTTP unicamente, la falla es  al llamar la linea 
                var httpResponse = httpClient.SendAsync(httpRequestMessage).Result;

    devuelve una excepcion :

    _COMPlusExceptionCode = -532462766

    System.Exception.s_EDILock

    No se que mas revisarle porque como les digo con otros servicios este codigo funciona correctamente cualquier comentario o sugerencia bienvenida muchas gracias.






    viernes, 15 de enero de 2021 1:29

Respuestas

  • Hola, no sé de quién es ese API pero una petición GET por definición no debería de llevar un cuerpo asociado a ella. Pero bueno, en este caso, si te fijas, en tu código estás estableciendo en el mensaje unas cabeceras.

    Debes estblecer el contenido

    public string LLamarServicio()
    {
                var httpClient = new HttpClient();
    
                string url = "https://cosabog06xz023.colxyz.com/COAP179/REST/GenerarToken";
    
                var httpRequestMessage = new HttpRequestMessage(HttpMethod.Get, url);
    
     
    httpRequestMessage .Content = new StringContent("{\"MENSAJE\":\"Mensaje\",\"CLAVE\":\"Clave\"}", Encoding.UTF8, "application/json");
    
                var httpResponse = httpClient.SendAsync(httpRequestMessage).Result;
                var responseJsonString = httpResponse.Content.ReadAsStringAsync();
              return responseJsonString ();
    }
    Comenta también si solucionando esto, te desaparece el tema del _COMPlusExceptionCode


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



    lunes, 18 de enero de 2021 14:43
    Moderador
  • Hola. Has probado tanto en Postman como en tu código enviar un POST?

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

    lunes, 18 de enero de 2021 18:29
    Moderador

Todas las respuestas

  • Hola David,

    Gracias por levantar tu consulta en los foros de MSDN.

    Eric Ruiz

    ____________________________

    Por favor recuerde "Marcar como respuesta" las respuestas que hayan resuelto su problema, es una forma común de reconocer a aquellos que han ayudado, y hace que sea más fácil para los otros visitantes encontrar la solución más tarde.

    Si tiene algún cumplido o reclamo sobre el soporte de MSDN siéntase en la libertad de contactar MSDNFSF@microsoft.com.

    viernes, 15 de enero de 2021 18:12
    Moderador
  • Hola. La verdad es que es muy raro ese servicio. Es un método get pero le envías una cabecera Body. Has probado a usar digamos con Postman está llamada? Para verificar que sea algo del servicio y no de tu código. Un apunte muy importante, no pongas en el foro datos sensibles. Ahí veo lo que parece usuario y contraseñas. Edito la pregunta para que no aparezca.

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

    viernes, 15 de enero de 2021 18:42
    Moderador
  • Hola, investigando un poco parece que es un mensaje del servicio debido a un Timeout de SQL Server

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

    viernes, 15 de enero de 2021 18:49
    Moderador
  • Hola,

    En postman funciona correctamente con el metodo get y el json en el body, los datos son dummie de hecho son variables las que puse en el codigo. gracias por tu respuesta

    viernes, 15 de enero de 2021 22:48
  • Hola,

    Lo curioso es que en postman no se demora nada la ejecucion lo que mas me parece raro es esa excepcion que llega nula pero con valor raro

    viernes, 15 de enero de 2021 22:48
  • Hola,

    En postman funciona correctamente con el metodo get y el json en el body, los datos son dummie de hecho son variables las que puse en el codigo. gracias por tu respuesta

    Hola, indicas json en el body. En cabecera Body como has mostrado en tu código o en el body propio de una petición? Puedes enviar una captura de pantalla de tu Postman? Sigo sin entender. Gracias

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


    sábado, 16 de enero de 2021 2:25
    Moderador
  • Hola,

    En postman funciona correctamente adjunto una imagen: las credenciales por seguridad las borre...pero en el body envio un json con la autorizacion y una clave para que el servicio me devuelva un token

    lunes, 18 de enero de 2021 12:37
  • Hola, 

    Estuve mirando en foros pero la excepcion que dices es la COMPlusExceptionCode = -532459699 y la que le sale al programa es la _COMPlusExceptionCode = -532462766 pero el problema es que en la web no hay ningun caso con esta excepcion, tengo la duda que esa url es https no se si influya.

    lunes, 18 de enero de 2021 14:01
  • Hola, no sé de quién es ese API pero una petición GET por definición no debería de llevar un cuerpo asociado a ella. Pero bueno, en este caso, si te fijas, en tu código estás estableciendo en el mensaje unas cabeceras.

    Debes estblecer el contenido

    public string LLamarServicio()
    {
                var httpClient = new HttpClient();
    
                string url = "https://cosabog06xz023.colxyz.com/COAP179/REST/GenerarToken";
    
                var httpRequestMessage = new HttpRequestMessage(HttpMethod.Get, url);
    
     
    httpRequestMessage .Content = new StringContent("{\"MENSAJE\":\"Mensaje\",\"CLAVE\":\"Clave\"}", Encoding.UTF8, "application/json");
    
                var httpResponse = httpClient.SendAsync(httpRequestMessage).Result;
                var responseJsonString = httpResponse.Content.ReadAsStringAsync();
              return responseJsonString ();
    }
    Comenta también si solucionando esto, te desaparece el tema del _COMPlusExceptionCode


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



    lunes, 18 de enero de 2021 14:43
    Moderador
  • Deleted
    lunes, 18 de enero de 2021 17:08
  • gracias, tienes algun link de este tema?
    lunes, 18 de enero de 2021 17:29
  • sigue el mismo error  y al cosa q es que ese codigo por internet no se consigue documentacion ni idea que sera
    lunes, 18 de enero de 2021 17:30
  • Hola. Has probado tanto en Postman como en tu código enviar un POST?

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

    lunes, 18 de enero de 2021 18:29
    Moderador
  • si pero no funciona el lio es que estoy consumiendo un servicio externo, lo que dus dicen es cierto aca el servicio de token es un servicio post y en el body se pone el json ...
    lunes, 18 de enero de 2021 21:04