如何获取RESTful Web服务的请求URI

时间:2013-04-08 15:36:05

标签: c# web-services

我有一个在几个不同网站下使用的网络服务,想知道请求通过哪些网站(并根据该数据返回不同的内容)。我该怎么做?

我有一个网站example.com,在/webservice.svc中有一个web服务。当客户端通过http://client1.example.com/webservice.svc/hello访问此站点时,我想说“你好,client1!”当他们通过http://client2.example.com/webservice.svc/hello时,它应该说“你好,客户2!”。

所以client1或client2取决于subhost(或应用程序目录)

2 个答案:

答案 0 :(得分:1)

假设您正在使用WCF,您可以尝试: System.ServiceModel.Web.WebOperationContext.Current.IncomingRequest.Headers["Referer"]

结果将在您的示例中为http://client1.example.com/webservice.svc/hellohttp://client2.example.com/webservice.svc/hello。然后,您可以解析该字符串是否存在client1或client2。

您可能想要检查空值。

答案 1 :(得分:1)

结束使用HttpContext.Current.Request.Url.ToString();

完成此操作

当我尝试时,它也返回“对象引用未设置为对象的实例”,但发现在我的类声明之前以及在web.config中设置[AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Allowed)]技巧并允许访问我想要的变量。