我有一个运行在WPF C#应用程序中的Web API。我已经使用Owin来实现它。如果我使用/api
前缀发送请求,则它按照我的预期工作。
http://localhost:8080/api/test/config?no=7
然而,我需要去掉 /api 前缀。如果我尝试下面的请求,在我尝试下面的示例代码时它不起作用。
http://localhost:8080/test/config?no=7
是否有可能从请求中删除api单词?
这是我的代码:
WebApp.Start<Startup>(url: "http://*:8080/");
class Startup
{
Type ValuesControllerType = typeof(TestController);
public void Configuration(IAppBuilder Builder)
{
var Instance = new HttpConfiguration();
Instance.MapHttpAttributeRoutes();
Instance.Routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "{controller}/{action}/{request}",
defaults: new { request = RouteParameter.Optional }
);
Builder.UseWebApi(Instance);
}
}
[RoutePrefix("test")]
public class TestController : ApiController
{
[HttpGet]
[Route("config")]
public string Config(string No)
{
try
{
return No;
}
catch (Exception e)
{
return string.Empty;
}
}
}
我尝试了这篇文章中的答案:C# web api route for a webservice,但是没有成功。
我收到以下错误信息:
HTTP Error 503. The service is unavailable.
[RoutePrefix("test")]
时,你能否显示一个错误? - Roman Marusyk