我有一个在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.
答案 0 :(得分:1)
在Rest api上打开你的WebApiConfig.cs你应该找到以下代码:
[
{
foo: "A",
bar: [
{ baz: "1", qux: "a" },
{ baz: "2", qux: "b" },
{ baz: "5", qux: "e" },
{ baz: "6", qux: "f" }
]
},
{
foo: "B",
bar: [
{ baz: "3", qux: "c" },
{ baz: "4", qux: "d" },
{ baz: "7", qux: "g" },
{ baz: "8", qux: "h" }
]
}
]
尝试从那里删除api
答案 1 :(得分:0)
我在.Net Core 2 WebAPI项目中面临同样的问题
这是我的解决方案
[Produces("application/json")]
[Route("[controller]")]
public class DefaultController : Controller
{
[Route("getUser")]
public IActionResult GetUsers()
{
return Ok();
}
}
地址为http://localhost:port/default/getuser