Possible to invoke ASMX service with parameter via url query string?

后端 未结 2 1423
面向向阳花
面向向阳花 2020-12-08 20:17

I\'ve got a asmx service that takes a single int parameter. I can open the URL to the service and see the service description screen. From here I can enter the query paramet

相关标签:
2条回答
  • 2020-12-08 20:57

    ASMX web services use SOAP. SOAP requests use only POST to invoke methods. You will need to generate a proxy client in your aspx page to invoke the web service. If you really need to use GET verbs to invoke web services you might need to use a different approach such as WCF REST.

    0 讨论(0)
  • You can decorate your method to allow HTTP GET requests, which should in turn do what you're looking for like so:

    [WebMethod]  
    [ScriptMethod(UseHttpGet=true)]
    public string MyNiftyMethod(int myint)
    {
        // ... code here
    }
    

    And edit the web.config :

    <system.web>
    <webServices>
      <protocols>
        <add name="HttpGet"/>
      </protocols>
    

    Then you'll be able to call this method like so:

    http://mysite.com/Service.asmx/MyNiftyMethod?myint=12345

    EDIT: Note that this method of performing GET requests does come with some security risks. According to the MSDN documentation for UseHttpGet:

    Setting the UseHttpGet property to true might pose a security risk for your application if you are working with sensitive data or transactions. In GET requests, the message is encoded by the browser into the URL and is therefore an easier target for tampering.

    0 讨论(0)
提交回复
热议问题