一个WCF服务如何获取查询参数?

3
我正在为Windows Phone应用程序开发一个Azure服务。我需要Azure服务来访问用户的OneDrive。根据这篇文章,我的场景应该是: 在研究了很多服务后,我仍然找不到一种捕获查询参数的方法。由于我对这个领域还很新,我不知道该关注什么。如果您能给我建议或回答以下问题,我将非常感激:
  1. 我能否只使用带参数的url在浏览器中访问服务?如何判断服务是否正常工作?
  2. 一篇文章提到使用WCF [Web Get]属性来获取查询参数,但我仍不知道如何实现IService1.cs和Service1.cs文件,请给我一个关于如何访问查询参数值的示例。

谢谢!

1个回答

1
我不确定我是否正确理解了您的问题,但如果您想让您的RESTful WCF服务成为请求代码的回调接收器,则您的服务必须使用WebHttpBinding和类似于此的ServiceContract进行托管。
[ServiceContract]
public interface IService
{
    [WebGet(UriTemplate = "callback?code={requestCode}")]
    void OAuthCallback(string requestCode);
}

如果您的服务的基本地址是 "http://service.mydomain.com/MyService.svc",则当向 "http://service.mydomain.com/MyService.svc/callback?code=RequestCode" 发送 HTTP GET 请求时,将调用 OAuthCallback 方法。请注意保留 HTML 标签。

2
非常感谢,您的回答让我清楚了。但是测试这个服务的正确方法是什么?我可以直接在浏览器中访问“http://service.mydomain.com/MyService.svc/callback?code=RequestCode”吗?还是应该编写另一个服务主机?谢谢!!! - Shone
当然可以。您可以使用浏览器或任何能够创建简单http get的工具,如Fiddler、wget、浏览器等。您还可以使用WCF测试您的服务。如果您使用ChannelFactory<IService>和webhttpbinding创建通道,则调用将作为与uri模板匹配的http get调用。 - codeworx
非常感谢!您的帮助对于我这个初学者来说真的很重要:)可惜我没有足够的声望来为您投票。 - Shone
我很高兴能够帮助。也许您可以接受我的答案作为解决您问题的方案。链接 - codeworx

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接