首页 文章

在web api中执行POST请求时内部服务器错误500

提问于
浏览
-1

我是web api的新手,我正在测试如何使用发布请求 . 首先,我使用以下属性创建了名为Student的模型类 .

这是我的模型类:

namespace SelfApi.Models
   {
     public class Student
      {
        public string studentId { get; set; }
        public string firstName { get; set; }
        public string lastName { get; set; }
        public string address { get; set;}
     }
    }

然后在值控制器内部,我有这个代码来实现一个post请求 . 我导入了SelfApi.Models,因此我可以访问Student Model类及其属性 . 在post请求中,我希望能够发布数据并将其直接映射到Student Model类 .

using System.Net.Http;
    using System.Threading.Tasks;
    using System.Web.Http;
    using SelfApi.Models;

    namespace SelfApi.Controllers
     {

       public class ValuesController : ApiController
        {
          static HttpClient client = new HttpClient();

       // POST api/values
       public async Task PostAsync([FromBody] Student student)
        {
          client.BaseAddress = new Uri("http://localhost:4570/");
          client.DefaultRequestHeaders.Accept.Clear();
          client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));

        HttpResponseMessage response = await client.PostAsJsonAsync("api/values",student);
        response.EnsureSuccessStatusCode();

       }

      } 
    }

现在在邮递员中我选择了一个POST请求,选择了json(application / json)并将其包含在body字段中 . 请注意,此json数据直接映射到Student Model类中的内容 .

{
 "studentId" : "23",

 "firstName" : "John",

 "lastName" : "Black",

 "address" : "DC"
}

当我发出请求时,我得到了500:内部服务器错误 . 我愿意接受建议,如果我的代码有错,请告诉我 . 我很想让这个有用 . 我一整天都在这 . 谢谢 .

1 回答

  • 0

    你完全错了, httpclient 类,如果你想从你的客户端调用一个动作,但是在你的服务器中你必须实际处理请求,你这样做会导致无限循环,请求来到你的服务器和然后它又一次又一次地发送到服务器,你必须在你的控制器中做这样的事情

    namespace SelfApi.Controllers
     {
    
       public class ValuesController : ApiController
        {
          private AppDataBaseContext DB = new AppDataBaseContext();
    
       // POST api/values
       public async Task PostAsync([FromBody] Student student)
        {
          DB.Student.Add(student);
          await DB.SaveChangesAsync();
    return Ok();
       }
    
      } 
    }
    

    哪个AppDataBaseContext是你的ef DbContext .

相关问题