asmx - example - consumir web service xml c#
¿Es posible invocar el servicio ASMX con un parámetro a través de la cadena de consulta url? (2)
Los servicios web de ASMX utilizan SOAP. Las solicitudes SOAP usan solo POST para invocar métodos. Necesitará generar un cliente proxy en su página aspx para invocar el servicio web. Si realmente necesita usar verbos GET para invocar servicios web, es posible que deba usar un enfoque diferente, como WCF REST .
Tengo un servicio asmx que toma un solo parámetro int. Puedo abrir la URL del servicio y ver la pantalla de descripción del servicio. Desde aquí puedo ingresar los parámetros de consulta en un formulario e invocar el servicio web.
¿Hay alguna forma de invocar un servicio web directamente desde una URL / cadena de consulta?
Esto no funciona:
http://localhost:4653/MyService.asmx?op=MyWebMethod&intParameter=1
¿Algunas ideas? Realmente me gustaría poder hacer esto desde un enlace estándar debido a algunos problemas de implementación. ¿Voy a tener que ajustar la solicitud en una página aspx normal?
Puede decorar su método para permitir las solicitudes HTTP GET, que a su vez deberían hacer lo que está buscando:
[WebMethod]
[ScriptMethod(UseHttpGet=true)]
public string MyNiftyMethod(int myint)
{
// ... code here
}
Y edita el web.config:
<system.web>
<webServices>
<protocols>
<add name="HttpGet"/>
</protocols>
Entonces podrás llamar a este método así:
http://mysite.com/Service.asmx/MyNiftyMethod?myint=12345
EDITAR: Tenga en cuenta que este método para realizar solicitudes GET sí conlleva algunos riesgos de seguridad. Según la documentación de MSDN para UseHttpGet :
Establecer la propiedad UseHttpGet en true podría suponer un riesgo de seguridad para su aplicación si trabaja con datos o transacciones confidenciales. En las solicitudes GET, el mensaje está codificado por el navegador en la URL y, por lo tanto, es un objetivo más fácil para la manipulación.