当以JSON格式发送数据时,WebAPI无法正常工作

Qais Almomany

我才刚开始学习WebAPI,

当我尝试调用Api / TessterFunction并将数据参数作为JSON发送时({“ Test”:“ TEST”}),我收到此响应“未找到与请求匹配的HTTP资源”

但是,当尝试调用它并以查询字符串的形式发送数据时(http:// localhost / myProject / myApi / TesterFunction?Test =“ TEST ”),它就可以正常工作并完成。

[HttpPost]
[Route("TesterFunction")]
public HttpResponseMessage TesterFunction(string Test)
{
    try
    {
        myClass myObject= new myClass();

        if (myObject.myStordProcedure(CompanyCode))
        {
            return Request.CreateResponse(HttpStatusCode.OK, "Done");
        }
        else
        {
            return Request.CreateResponse(HttpStatusCode.BadRequest, "SP not executed");
        }
    }
    catch(Exception e)
    {
        return Request.CreateErrorResponse(HttpStatusCode.BadRequest, e);
    }

} 
杰丁·贤哲

那将不起作用,因为您的Web api方法仅接受字符串参数。

你能做的是

  1. 添加一个将绑定属性的类
public class ReceiveModel{
   public string Test {get;set;}
}
  1. 然后替换您的Web api方法以使用ReceiveModel参数。
[HttpPost]
[Route("TesterFunction")]
public HttpResponseMessage TesterFunction(ReceiveModel model)
{
    // see the property here
    Console.WriteLine(model.Test);

    try
    {
        myClass myObject= new myClass();

        if (myObject.myStordProcedure(CompanyCode))
        {
            return Request.CreateResponse(HttpStatusCode.OK, "Done");
        }
        else
        {
            return Request.CreateResponse(HttpStatusCode.BadRequest, "SP not executed");
        }
    }
    catch(Exception e)
    {
        return Request.CreateErrorResponse(HttpStatusCode.BadRequest, e);
    }

}

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章