【发布时间】:2020-03-29 20:51:03
【问题描述】:
我从桌面应用程序调用 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 获取方法
[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}")] 不适合我
【问题讨论】:
-
我认为 Check 方法必须是
[Route("api/Check")] [HttpGet] public void insertRecLoadData(DateTime DateStart, DateTime DateEnd)让我知道它是否工作正常,我可以像答案一样添加它
标签: c# .net asp.net-core asp.net-web-api