gpt4 book ai didi

c# - 使用 content(body) 或多个参数的 restful API get 方法

转载 作者:行者123 更新时间:2023-12-04 14:58:29 25 4
gpt4 key购买 nike

这是我的 API 方法,它从正文中获取 3 个参数


public async Task<IEnumerable<EnCurso>> GetIdCondByDTRuta(EnCurso encurso)
{
var db = dbConnection();
return await db.QueryAsync<EnCurso>("select * from public.tb_encurso where to_timestamp('" + encurso.inicio+ "','DD/MM/YYYY HH24:MI:SS') between inicio AND fin and idruta = " + encurso.idruta+ " and idbus = "+ encurso.idbus + " and estado=true;", new { encurso.inicio, encurso.idruta, encurso.idbus });
}

[HttpGet("GetIdCondByDTRuta")]
public async Task<IActionResult> GetIdCondByDTRuta([FromBody] EnCurso encurso)
{
return Ok(await _encursoRepository.GetIdCondByDTRuta(encurso));
}

当从 body 对 Postman 进行测试时,效果很好。 Postman test

但是我不知道如何从使用 API 的应用发送内容。我尝试像这样在 URI 中添加参数


var _URI = "http://XXX.XXX.0.XX:4XXX8/api/encurso/GetIdCondByDTRuta.json?inicio:" + encurso.inicio + "&idruta:" + encurso.idruta + "&idbus:" + encurso.idbus;
HttpResponseMessage result = await client.GetAsync(_URI);

不起作用。我尝试搜索采用 Uri 和内容的 httpclient 方法,就像帖子一样,但是 GET 方法没有选项

Post content example

最佳答案

HTTP Get 方法不应包含此线程中引用的正文:HTTP GET with request body .

创建 Get API 方法时,最好使用 [FromQuery]- FromQueryAttribute Class这会将数据绑定(bind)到原始类型。所以你需要 3 个单独的参数。如果你想绑定(bind)到一个对象,你需要创建一个自定义的 ModelBinder。

当尝试在 ASP.Net core/5 API 中绑定(bind)数据时,Microsoft 的这篇文档介绍了您的选择 Binding source parameter inference

关于c# - 使用 content(body) 或多个参数的 restful API get 方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67426990/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com