c# Uri Templates

本文关键字:Templates Uri | 更新日期: 2023-09-27 18:01:33

我是REST服务开发的新手,我目前正在编写一个WCF REST服务,它必须支持现有的调用格式。

我知道通过添加

[WebInvoke(Method = "GET", UriTemplate = "{id}/testid.xml")]
string testid(string id);

到我的webmethod请求将使用:

http://(主机名)/255/testid.xml

我想要的是能够做的请求使用http://255/(主机名)/testid.xml

请注意,该服务托管在Windows服务应用程序中。

谢谢你的帮助!

c# Uri Templates

你不能。给定URI的结构如下:

如http://host/path?q=x

这可以分解为:

  • http://- the Scheme
  • host/- 权限
  • 路径- 路径
  • ?q=x - 查询字符串

URI模板只作用于URI的Path和Querystring组件。不能以这种方式访问方案和授权机构。

要在URL的参数中使用特殊字符,必须配置HttpListenerRequestUriBuilder。此构建器根据设置不转义或不转义编码。你可以将这段代码添加到你的app.config文件中:

<configuration>
  <system.net>
    <settings>
      <httpListener unescapeRequestUrl="false"/>
    </settings>
  </system.net>
</configuration>

不可能。不能在域名和服务名称前的uri中添加参数或不能传递参数。

可以在Uri中的域名和服务名称后面添加参数。