【问题标题】:Passing JSON data in HTTPPost request from Java to ASP.NET MVC将 HTTPPost 请求中的 JSON 数据从 Java 传递到 ASP.NET MVC
【发布时间】:2011-10-12 19:37:04
【问题描述】:

我正在开发一个使用 Java 构建的 Android 应用程序,并且我在 ASP.NET MVC 应用程序中有一个网站/REST 服务。我正在尝试使用 Java HttpClient 发出 HttpPost 请求,并在 http 请求中以 JSON 格式传递对象,但它们没有显示在我的 MVC REST 服务的控制器中。当我运行应用程序并发出 Java 请求时,它在 MVC 应用程序中中断,我检查 HttpContext.Request 并且 Params 字段为空,QueryString 为空,并且我看到的所有其他地方都只显示“application/json”但它没有任何参数。有没有人有任何想法?我已经按照教程展示了如何使用 JSONObject 的 StringEntity 设置实体,但这也不起作用。如果我通常传入参数,例如“http://www.url.com?name=mike&number=1”,那么我会在 MVC 控制器中获取数据。有没有人有某种教程或可以帮助我编写代码?

【问题讨论】:

    标签: java android asp.net-mvc


    【解决方案1】:

    如果您使用的是 ASP.NET MVC 3,那么已经有一个内置的 JsonValueProviderFactory 允许您使用 JSON 直接调用操作。如果您使用的是旧版本,您可以自己实现一个。查看following blog post 以了解预期的确切线路格式。

    假设您有以下模型:

    public class Person
    {
        public string FirstName { get; set; }
        public string LastName { get; set; }
    }
    

    并且您想要调用以下控制器操作并从 JSON 请求中自动填充参数:

    [HttpPost]
    public ActionResult Index(Person p)
    {
        ...
    }
    

    您可以发送以下 POST 请求:

    POST /home/index HTTP/1.1
    Host: 127.0.0.1:4569
    Accept: application/json, text/javascript, */*
    ContentType: application/json; charset=utf-8
    Content-Length: 40
    Connection: close
    
    {"FirstName":"John", "LastName":"Smith"}
    

    【讨论】:

      猜你喜欢
      • 2013-11-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-04-12
      • 1970-01-01
      相关资源
      最近更新 更多