[英]How route get method with query params .net core
我从桌面应用程序调用 web api get 方法。
这是调用方法
private static async Task<Interval> Check(Interval checkGet)
{
var queryParams = new Dictionary<string, string>(2);
queryParams.Add("DateStart", intervalForGet.DateStart.ToString());
queryParams.Add("DateEnd", intervalForGet.DateEnd.ToString());
string requestUri = QueryHelpers.AddQueryString("http://localhost:58232/api/Check", queryParams);
HttpClient client = new HttpClient();
var httpResponse = await client.GetAsync(requestUri);
var createdTask = JsonConvert.DeserializeObject<Interval>(await httpResponse.Content.ReadAsStringAsync());
return createdTask;
}
模型
public class Interval
{
public int Id { get; set; }
public DateTime DateStart { get; set; }
public DateTime DateEnd { get; set; }
}
当我调试此代码时,我看到下一个 requestUri http://localhost:58232/api/Check?DateStart=03.01.2018%200%3A00%3A00&DateEnd=03.01.2018%200%3A00%3A00
这是来自 web api 的 get 方法
[HttpGet("api/Check/{DateStart}/{DateEnd}")]
public async Task<List<Intervals>> Check([FromQuery]string urlString)
{
//some code
}
这是启动类
public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{
if (env.IsDevelopment())
{
app.UseDeveloperExceptionPage();
}
app.UseRouting();
app.UseEndpoints(endpoints =>
{
endpoints.MapControllers();
});
}
告诉我。 如何制作路线,因为我的[HttpGet("api/Check/{DateStart}/{DateEnd}")]
对我不起作用
在您的来电者中:
var httpResponse = await client.GetAsync($"http://localhost:58232/api/Check/{intervalForGet.DateStart.ToString()}/{intervalForGet.DateEnd.ToString()}");
在你的 api
[HttpGet("api/Check/{DateStart}/{DateEnd}")]
public async Task<List<Intervals>> Check(DateTime DateStart,DateTime DateEnd)
{
//some code
}
不要忘记以正确的格式传递您的日期,例如 2020-11-12
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.