在邮递员中获取接受参数的请求,当前发送不支持的媒体类型错误
Posted
技术标签:
【中文标题】在邮递员中获取接受参数的请求,当前发送不支持的媒体类型错误【英文标题】:get request to accepts params in postman, currently sends a unsupported media type error 【发布时间】:2021-10-04 04:55:40 【问题描述】:我使用正文请求构建了不同的 get 方法来选择一个 id(使用原始 json)。但是,当我了解到 get 方法不支持正文请求时,我想进行更改以便可以在 postman insted 中使用 params。但是,当我现在执行此操作时,我得到了 415 Unsupported Media Type。
方法如下:
public async Task<IEnumerable<RentReason>> getRentReason(RentReason model)
var parameters = new DynamicParameters();
parameters.Add("@rentId", model.rentreasonId);
var getAllRentReason = await _sqlconnection.QueryAsync<RentReason>($@"SELECT
CostItem.ID as rentreasonId,
CostItem.CostItemTypeID as claimReason,
RequestRentServiceReason.Name as rentReason,
RequestRentServiceCartype.Name as RentServiceCarTypeID,
DateFrom, DateTo, Price as totalPrice
FROM CostItem
INNER JOIN RequestRentServiceReason ON CostItem.RentReasonID = RequestRentServiceReason.ID
INNER JOIN RequestRentServiceCartype ON CostItem.RentServiceCartypeID = RequestRentServiceCartype.ID
WHERE CostItem.ID = @rentId", parameters);
return getAllRentReason;
控制器:
[HttpGet]
public async Task<IActionResult> getRentReason(RentReason model)
if (!ModelState.IsValid)
return BadRequest(ModelState);
try
var list = await _request.getRentReason(model);
return Ok(list);
catch (Exception ex)
return BadRequest(ex.Message);
return Ok();
接口类:
Task<IEnumerable<RentReason>> getRentReason(RentReason model);
在我在正文中发送请求之前:
"rentreasonId": "40"
但我想在参数中发送它,例如:
https://localhost/Request/getRentReason?rentreasonId=40
有人知道如何实现吗?
【问题讨论】:
public async Task<IActionResult> getRentReason([FromQuery] RentReason rentreasonId)
?
@Fildor 它有效,我只需要更改控制器和方法。太感谢了!如果你回答这个问题,我可以接受它作为答案:)
【参考方案1】:
您可以使用[FromQuery]
属性将方法参数绑定到查询参数。
在你的情况下,它应该是这样的:
public async Task<IActionResult> getRentReason([FromQuery] int rentreasonId)
这将使您能够使用<your controller path>/rentReason?rentreasonId=40
但是,我建议为此使用路由参数:
[HttpGet("/your/api/route/rentreason/rentreasonId")]
public async Task<IActionResult> getRentReason([FromRoute] int rentreasonId)
这会让你得到像<authority>/your/api/route/rentreason/40
这样的东西。
供参考:FromRouteAttribute
【讨论】:
以上是关于在邮递员中获取接受参数的请求,当前发送不支持的媒体类型错误的主要内容,如果未能解决你的问题,请参考以下文章