【问题标题】:Error while using post in Postman在 Postman 中使用 post 时出错
【发布时间】:2016-05-08 18:55:51
【问题描述】:

我正在尝试使用 Post 方法以 JSON 格式传递原始数据,并将其存储在具有属性但显示错误的类中。
我在值控制器中的代码-

    [HttpPost]
    public void AddEmployee()
    {
        HttpWebRequest myHttpWebRequest`= (HttpWebRequest)WebRequest.Create("http://localhost:50278/api/values/AddEmployee");

        HttpWebResponse myHttpWebResponse = (HttpWebResponse)myHttpWebRequest.GetResponse();

    ////////Above line is giving error///////

    Stream receiveStream = myHttpWebResponse.GetResponseStream();
    DataContractJsonSerializer serializer =new DataContractJsonSerializer(typeof(Models.Employee));
    Models.Employee user = (Models.Employee)serializer.ReadObject(receiveStream);


    }

我想存储数据的类

Models.Employee
{
     public string FirstName { get; set; }
     public string MiddleName { get; set; }
     public string LastName { get; set; }
     public Nullable<System.DateTime> DOB { get; set; }
     public Nullable<System.DateTime> DOJ { get; set; }
     public Nullable<short> IsActivce { get; set; }
}

我在 Postman Post http://localhost:50278/api/values/AddEmployee 中传递的命令

有数据

[
{   
"FirstName" : "ABDCD",
"MiddleName" :"sajsoa",
"LastName"  : "KSJFHF",
"DOB":1994-01-12 00:00:00.0001994-01-12 00:00:00.000,
"DOJ":1994-01-12 00:00:00.0001994-01-12 00:00:00.000,
"Isactive" : 1
}
]

我收到以下错误:
System.Net.WebException 发生在 System.dll 中,但未在用户代码中处理。
附加信息:

The remote server returned an error: (405) Method Not Allowed. 

请问为什么显示错误以及日期格式是否正确?

【问题讨论】:

  • 请发布您收到的错误消息
  • System.dll 中出现“System.Net.WebException”类型的异常,但未在用户代码中处理附加信息:远程服务器返回错误:(405) 方法不允许。跨度>
  • 为什么要递归发送请求?
  • 因为您的请求默认使用GET 方法发送。但是您的AddEmployee 只接受POST 请求
  • 我在 Postman 中发送 Post 请求,并且 Post 请求应用于方法,那么我应该在哪里编辑我的代码?

标签: c# post postman


【解决方案1】:

你试过了吗?

[HttpPost]
public void AddEmployee([FromBody]Models.Employee user)
{
   EService eserv = new EService();
    eserv.Addemp(user);
}

【讨论】:

  • 我也试过了,它给出了这个错误 --- "Message": "The request entity's media type 'text/plain' is not supported for this resource.", "ExceptionMessage": "No MediaTypeFormatter 可用于从媒体类型为“text/plain”的内容中读取类型为“Employee”的对象。”、“ExceptionType”:“System.Net.Http.UnsupportedMediaTypeException”、“StackTrace”:“System.Net.Http。 HttpContentExtensions.ReadAsAsync[T](HttpContent内容,Type类型,我只是想让Models.Employee存储数据
  • 它已执行,但是当我尝试访问 Models.Employee Emp.FirstName 时它会抛出 ---- EmployeeService.dll 中发生了“System.NullReferenceException”类型的异常,但未在用户代码中处理
  • 嘿,谢谢它的工作 :) 如果我有 Models.Department { Departmentid {get, set}, Departname{get ,set}} 所以根据你的方法 public void AddEmployee([FromBody]Models.Employee user) 它只会存储 Employee 如果我也想包含 Models.Department 怎么办?
  • 只要您发送正确的属性,服务器就会正确地将它们映射到相应的对象,所以像public void AddEmployee([FromBody]Models.Employee user, [FromBody]Models.Department dept) 这样的东西应该可以工作。另外,如果它解决了您的问题,请接受此答案。谢谢!
  • 我已将其添加为答案,但至少需要 15 个 repu 才能公开显示。
猜你喜欢
  • 2021-04-27
  • 2021-01-17
  • 2019-02-22
  • 2018-07-17
  • 2021-12-18
  • 2018-07-08
  • 2020-01-27
  • 1970-01-01
  • 2020-02-08
相关资源
最近更新 更多