调用Web Api方法,找不到错误404

问题描述 投票:0回答:1

我有一个问题与WebMethod MVC这是控制器中的方法

[HttpPost]        
public IHttpActionResult GetData(int Company,
    int FromYear,int ToYear, int language ,
    int DATA_SERIES_TYPE, bool PERIOD_Q1)
{
    var ds = new DataSet();
    try
    {
        ds = Actions.GetValues(Company, FromYear, ToYear,DATA_SERIES_TYPE);
        return Ok(ds);
    }
    catch(Exception ex)
    {
        return InternalServerError(ex);
    }
}

当我使用webrequest从另一个项目调用api时,我在API中有这个方法

Dim Request As WebRequest = WebRequest.Create("http://localhost/PBWebApi/api/GetData")
With strJson
    .Append("{")
    .Append($"Company:{_dynaSolver.CompanyCode.ToString()}" & ",")
    .Append($"FromYear:{_dynaSolver.FromYear.ToString}" & ",")
    .Append($"ToYear:{_dynaSolver.ToYear.ToString}" & ",")
    .Append($"language:{CType(_dynaSolver.DataLanguage, Integer).ToString}" & ",")
    .Append($"DATA_SERIES_TYPE:{ CType(_dynaSolver.Fundamentals, Integer).ToString}")
    .Append("}")
End With

Dim data = Encoding.UTF8.GetBytes(strJson.ToString)
With Request
    .Method = "POST"
    .ContentType = "application/json; charset=utf-8"
    .ContentLength = data.Length
End With

Dim stream = Request.GetRequestStream()
stream.Write(data, 0, data.Length)
stream.Close()

Dim response = Request.GetResponse().GetResponseStream
Dim reader As StreamReader = New StreamReader(response)
Dim res = reader.ReadToEnd()
dsRes = JsonConvert.DeserializeObject(Of DataSet)(res)
reader.Close()
response.Close()

当我执行此操作时,响应会出现此错误。

未找到与请求URI匹配的HTTP资源

我尝试在另一个函数中只使用一个参数,但我得到了相同的结果。我尝试使用fiddler,但我得到了同样的错误。

asp.net-mvc vb.net api
1个回答
0
投票

我修复了问题创建和对象名为id并将所有属性添加到该对象。之后,我将对象作为json发送到内容中并且可以正常工作。问候

© www.soinside.com 2019 - 2024. All rights reserved.