当前位置: 首页 > 知识库问答 >
问题:

在POST参数中接收空值

冀鸿才
2023-03-14

我在向控制器发出的web api rest post请求中始终收到一个空值

在我的控制器中

[HttpPost]
public HttpResponseMessage PostCustomer([FromBody]Customer customer)
{

       System.Diagnostics.Debug.WriteLine(customer); #CustomerApp.Models.Customer
       System.Diagnostics.Debug.WriteLine(customer.FirstName); #null

}

模型

public class Customer
{
    public int Id { get; set; }
    public string LastName { get; set; }
    public string FirstName { get; set; }
}

请求:

POST: http://localhost:21894/api/customer/postcustomer

Content-Type: application/json

body: {FirstName: "xxxx", LastName: 'yyyy'}

我尝试了以下解决方案,但没有任何效果

https://myadventuresincoding.wordpress.com/2012/06/19/c-supporting-textplain-in-an-mvc-4-rc-web-api-application/

如何在WebAPI中获取POST数据

有没有人能帮助我或正确的链接

回答:提出了一个卷发请求,而不是像这样和邮递员打交道,这给了我解决方案

$ curl -H "Content-Type: application/json" -X POST -d '{"FirstName":"Jefferson","LastName":"sampaul"}' http://localhost
:21894/api/customer/postcustomer

共有2个答案

傅穆冉
2023-03-14

将您的实体设置为客户而不是字符串

[HttpPost]
public Customer PostCustomer(Customer customer)
{
    System.Diagnostics.Debug.WriteLine(customer);
    return customer;
}

确保方法上有[HttpPost]属性,也不需要[FromBody]

贺海
2023-03-14

我认为你的意思是有一个客户对象作为输入,如下所示,而不是字符串

public HttpResponseMessage PostCustomer([FromBody]Customer customer)
 {

我们将在下面进行更改,并尝试重新发布请求。应该行得通

public HttpResponseMessage PostCustomer(Customer customer)
 {
   return OK(customer.FirstName);
 }

请求:

POST: http://localhost:21894/api/customer/postcustomer
Content-Type: application/json; charset=utf-8
{"Id":101,"FirstName":"xxxx","LastName":'yyyy'}
 类似资料:
  • 问题内容: 我正在使用Jersey开发RESTful服务,并且与GET方法配合使用效果很好。但是我不能使其与POST方法和JSON或文本参数一起使用。这些是我所做的: 我只为所有参数获取空值。我试图只使用一个字符串作为参数,但是它也不起作用……我试图从IOS访问这些方法,也许这就是问题之一。但是我一直在嗅探我的局域网,并且可以在数据包主体中看到正确的参数……这正确吗? 我已经从XCode发送了如下

  • 问题内容: 我有一个AngularJSWeb应用程序,看起来它正确地将JSON发送到Tomcat服务器,但是服务器接收到空值。这个问题没有帮助,因为我的属性名称已经是小写字母,这个问题也没有帮助,因为我已经有了符号。 编辑:正如评论中指出的那样,我实际上没有这种表示法。 我读错了。 这是有问题的服务器方法: 这是它希望接收的Kind对象: 这是发出请求的方法: 这是发送到服务器的JSON: 注意:

  • 我有一个AngularJS Web应用程序,它看起来像是正确地将JSON发送到Tomcat服务器,但是服务器接收空值。这个问题没有帮助,因为我的属性名称已经是小写的,这个问题没有帮助,因为我已经得到了符号。编辑:正如评论中指出的,我实际上没有这个符号。我看错了。 下面是有问题的服务器方法: 以下是它期望接收的Kind对象: 以下是发出请求的方法: 这是发送到服务器的JSON: 注意:我假设我可以不

  • 我有一个应用程序,在本地工作很好,但在客户端,它崩溃,因为一个POST参数是NULL。 此返回为NULL。 因此,我添加了一个过滤器来记录请求的get/post/body。在本地,日志如下所示: [方法:post][请求URI://peps/zkau][请求参数:{dtid=z_0n8,uuid_0=x38pz,data_0={“pagex”:372,“pagey”:103,“which”:1,“

  • 我正在使用Swagger 3.0/OpenAPI编写一个网站来描述我的API和Node。js用于后端。我成功地完成了GET请求,但我在处理所有POST请求时遇到了一些问题。问题是,我在执行POST请求时从HTML表单提供的参数似乎没有被/controllers文件夹中Swagger处理程序自动生成的参数接收。尤其是req.招摇。params数组和req.swagger。params['body']

  • 我正在尝试从接收包含3个参数的多部分请求: 一个 一个 我在控制器中接收到和fine,但json的所有字段都为NULL。会有什么问题吗? JSON 控制器 邮差