我有一个asmx服务,它接受一个int参数.我可以打开服务的URL并查看服务描述屏幕.从这里我可以将查询参数输入到表单中并调用Web服务.
有没有办法直接从URL /查询字符串调用Web服务?
这不起作用:
HTTP://本地主机:4653/MyService.asmx OP = MyWebMethod&intParameter = 1
有任何想法吗?由于某些部署问题,我真的希望能够通过标准链接执行此操作.我是否必须在普通的aspx页面中包装请求?
Sco*_*son 48
您可以修改您的方法以允许HTTP GET请求,这反过来应该执行您正在寻找的内容,如下所示:
[WebMethod]
[ScriptMethod(UseHttpGet=true)]
public string MyNiftyMethod(int myint)
{
// ... code here
}
Run Code Online (Sandbox Code Playgroud)
并编辑web.config:
<system.web>
<webServices>
<protocols>
<add name="HttpGet"/>
</protocols>
Run Code Online (Sandbox Code Playgroud)
然后你就可以像这样调用这个方法:
http://mysite.com/Service.asmx/MyNiftyMethod?myint=12345
编辑:请注意,这种执行GET请求的方法确实存在一些安全风险.根据UseHttpGet的MSDN文档:
如果您正在处理敏感数据或事务,则将UseHttpGet属性设置为 true可能会对您的应用程序造成安全风险.在GET请求中,消息由浏览器编码到URL中,因此更容易被篡改.
| 归档时间: |
|
| 查看次数: |
71604 次 |
| 最近记录: |