【问题标题】:Posting a Json String to WebApi always end up with null parameter将 Json 字符串发布到 WebApi 总是以 null 参数结束
【发布时间】:2018-08-09 05:00:04
【问题描述】:

您好,我一直在尝试解决此问题。我有一个接受 Json 字符串作为 POST 的 WebApi。客户端正在访问我们的 Webapi。但是,"Result" 始终为 NULL。我已经研究了几天,但找不到答案。我正在使用 Postman 将响应发布到 WebApi。我是 WebApi 的新手,这是我的第一篇文章。希望有人可以对此有所了解。谢谢

WebApiConfig.cs

public static void Register(HttpConfiguration config)
{
    config.SuppressDefaultHostAuthentication();
    config.Filters.Add(new 
    HostAuthenticationFilter(OAuthDefaults.AuthenticationType));
    config.Filters.Add(new BasicAuthenticationFilterAttribute());

    // Web API routes
    config.MapHttpAttributeRoutes();
    config.Routes.MapHttpRoute(
    name: "DefaultApi",
    routeTemplate: "api/{controller}"
    );
}

Global.asax.cs

protected void Application_Start()
    {
        AreaRegistration.RegisterAllAreas();
        GlobalConfiguration.Configure(WebApiConfig.Register);
        FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
        RouteConfig.RegisterRoutes(RouteTable.Routes);
        BundleConfig.RegisterBundles(BundleTable.Bundles);
    }

OcrDataReceiverController.cs - “结果”始终为 NULL

[RoutePrefix("api/OcrDataReceiver")]
[Authorize]
public class OcrDataReceiverController : ApiController
{   
    [HttpPost]
    [AllowAnonymous]
    public HttpResponseMessage Post([FromBody]OcrResultModel result)
    {
    // Do Something
    }
}

OcrResultModel.cs

[Serializable]
public class OcrResultModel
{                       
    public string requestId { get; set; }      
    public string customerRequestId { get; set; }
}

由于我是 stackoverflow 的新手,我还不能发布任何图片(邮递员)。在邮递员中,我有 Content-Type = application/json。

正文:原始 - JSON(应用程序/json)

{"requestId":"2b20cba5-6715-4d3e-aea6-9e72088d87bc","customerRequestId":"Joseph123d"}

【问题讨论】:

    标签: c# json asp.net-web-api


    【解决方案1】:

    从班级中删除 Serializable。它会起作用的。

    作为 Json.NET 序列化程序,默认将 IgnoreSerializableAttribute 设置为 true,因此它会忽略属性

    public class OcrResultModel
    {                       
        public string requestId { get; set; }      
        public string customerRequestId { get; set; }
    }
    

    【讨论】:

      猜你喜欢
      • 2019-03-30
      • 1970-01-01
      • 1970-01-01
      • 2011-01-31
      • 1970-01-01
      • 2015-10-07
      • 1970-01-01
      • 2016-08-02
      • 2019-01-30
      相关资源
      最近更新 更多