如何将asmx服务转换为rest以使用URL进行调用

时间:2015-02-05 06:33:14

标签: c# asp.net web-services rest

我创建了asmx服务,如何通过“URL”调用它?

这是我的代码:

[WebMethod]
public string start(string id, string name)
{
   string newname = name;
   return newname;
}

这是我当前的网址:

url = "http://localhost:XXXXX/WebService.asmx/start?id=" +id+ "&name="+name;

这是我的“Web.config”:

<configuration>
   <system.web>
     <compilation debug="true" targetFramework="4.5">
     </compilation>
    <httpRuntime maxRequestLength="1000000"/>
<webServices>
  <protocols>
    <add name="HttpGet"/>
    <add name="HttpPost"/>
  </protocols>
</webServices>
  <pages controlRenderingCompatibilityVersion="3.5" clientIDMode="AutoID"/>
</system.web>
   <system.webServer>
     <directoryBrowse enabled="true"/>
   </system.webServer>
</configuration>

1 个答案:

答案 0 :(得分:2)

您可以修饰您的方法以允许HTTP GET请求

 [WebMethod]  
    [ScriptMethod(UseHttpGet=true)]
    public string start(string id, string name)
    {
       string newname = name;
       return newname;
    }

并在web.config文件中执行以下操作

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

将UseHttpGet属性设置为true可能会给安全带来安全风险   您的应用程序,如果您正在处理敏感数据或   交易。在GET请求中,消息由浏览器编码   进入URL,因此更容易被篡改。

     

请注意,这种执行GET请求的方法确实有一些   安全风险。根据{{​​3}}

希望这有帮助