我需要在C#中创建一个RESTful Web服务。这就是我现在所拥有的:
namespace WebService
{
[ServiceContract]
public interface IService
{
[OperationContract(Name="Add")]
[WebGet(UriTemplate = "/")]
int Add();
}
public class Service:IService
{
public int Add()
{
// do some calculations and return result
return res;
}
}
}
现在,我的问题是我如何在一个位置说(http://localhost/TestService)托管此服务,如何在控制台应用程序客户端中测试该服务?
答案 0 :(得分:1)
要托管服务,WebServiceHost将是更好的选择。查看此文章http://msdn.microsoft.com/en-us/library/system.servicemodel.web.webservicehost.aspx了解其用法。
要在控制台应用程序中测试服务,可以使用HTTPWebRequest / HttpWebResponse类来进行请求/解密响应。请查看此用途http://msdn.microsoft.com/en-us/library/system.net.httpwebrequest.aspx
对于简单的请求,您也可以使用fiddler(也许在项目的原型设计阶段)
答案 1 :(得分:0)
请参阅此回答here以帮助您入门。
您所要做的就是将其作为控制台应用程序运行,控制台在Main方法/
中运行此代码RestExample exampleService = new RestExample();
host = new ServiceHost(exampleService);
host.Open();
一定要投入
Console.WriteLine("Press any key to exit . . . .");
Console.ReadKey(true);
host.Close();
这样,您的服务将一直保持开放状态。
请记住,您不必将其作为休息服务启动以测试接口的实现。在RestExample中,您可以针对该类编写单元测试,以确保每个方法按设计执行。将它作为控制台启动是一种选择,但对我来说,更多的是集成测试,而不是单元测试。