none
Consumir un servicio web api desde una aplicacion con net compact framework 3.5 RRS feed

  • Pregunta

  • Hola mi problema es que al momento de intentar consumir un servicio con el metodo put me saca el siguiente error 

    The remote server returned an error: (405) Method Not Allowed. 

    este es mi codigo 

    en el servicio 

            // PUT: api/OGRGuias/5
            [ResponseType(typeof(void))]
            public object PutGRGuias(object id)
            {
                try
                {
                    var consecutivo = db.Database.ExecuteSqlCommand("Update GRGuias set EstadoDocumento = 'C' where NumeroDocumento = "+ Convert.ToInt64(id));
                    db.SaveChanges();
                    return "Paleta cerrada con exito";
                }
                catch (DbUpdateConcurrencyException)
                {
                    return null;
                }
            }

    y este es mi codigo al intentar consumirlo 

            private void BtnGuardar_Click(object sender, EventArgs e)
            {
                try
                {
                    Uri uri = new Uri(ClBase.Url + "api/OGRGuias?id=" + TxtGuia.Text);
                    WebRequest request = WebRequest.Create(uri);
                    request.Method = "PUT";
                    request.ContentLength = 0;
                    request.Credentials = CredentialCache.DefaultCredentials;
                    
                    request.ContentType = "application/json";
    
                    WebResponse response = request.GetResponse();
                    StreamReader reader = new StreamReader(response.GetResponseStream());
                    string tmp = reader.ReadToEnd();
                }
                catch (Exception ex)
                {
                    throw new Exception(ex.Message);
                }
            }
    De antemano muchas gracias por la ayuda lo intento consumir desde un proyecto en visual studio 2008 smart device y el servicio web api lo tengo hehco en visual studio 2015 


    Alexis Cano

    lunes, 25 de abril de 2016 20:23

Respuestas

  • Lo que pasaba era que estaba enviando el metodo PUT en mayusculas al enviarlo en minuscula me funciono bien 

    Muchas gracias Por la ayuda 


    Alexis Cano

    • Marcado como respuesta Alexis cano martes, 26 de abril de 2016 14:59
    martes, 26 de abril de 2016 14:59

Todas las respuestas

  • hola

    lo que noto es que defines

    public object PutGRGuias(object id)

    pero luego invocas usando

    "api/OGRGuias?id="

    me parece que te esta faltando/sobrando la "O"

    recuerda que puedes usar tools como ser Fiddler

    para invocar el web api y realizar pruebas

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    lunes, 25 de abril de 2016 20:44
  • Hola 

    Mira lo llamo OGRGuias por que asi se  llama el controlador si le quito la O no me encuentra el método 

    y el / que me falta no es que me haga falta si no que con la clase CLBase.url el me devuelve la dirección del servidor asi htttp://localhost/NombreProyecto/



    Alexis Cano


    lunes, 25 de abril de 2016 21:07
  • Lo que pasaba era que estaba enviando el metodo PUT en mayusculas al enviarlo en minuscula me funciono bien 

    Muchas gracias Por la ayuda 


    Alexis Cano

    • Marcado como respuesta Alexis cano martes, 26 de abril de 2016 14:59
    martes, 26 de abril de 2016 14:59