Web Api HttpPost方法不允许'

本文关键字:不允许 方法 Api HttpPost Web | 更新日期: 2023-09-27 18:18:44

我正在编写检索国家列表的web api方法。方法名称为GetAllCountries。方法接受许多参数(如pageno,页面大小,排序顺序,其他过滤器等)。我没有创建带有许多参数的方法,而是创建了具有上述属性的Dto。由于web api中的Get方法只能接受原始数据类型或简单的dto,我选择了GetAllCountries作为post方法(它用HttpPost属性装饰),以便它可以接受复杂的dto。当我从客户端调用GetAllCountries方法时,我得到错误"StatusCode: 405, ReasonPhrase: '方法不允许',版本:1.1,内容:System.Net.Http。StreamContent头"。我知道我的方法名称是反对web api约定(意思是方法名称以Get开头,但它实际上是一个帖子)。我已经检查了所有内容(如url等),但仍然无法弄清楚为什么会出现错误。以下是代码

        [HttpPost]
    public GetCountryListResponse GetAllCountries(GetAllCountriesRequest request)
    {
        return DestinationBl.GetAllCountries(request);
    }

Web Api HttpPost方法不允许'

听起来您可能对方法的输入有问题。尝试在输入参数前添加[FromBody]:

[HttpPost]
public Countries GetAllConuntries([FromBody]YorObject obj)
{}