我是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 回答
你完全错了,
httpclient
类,如果你想从你的客户端调用一个动作,但是在你的服务器中你必须实际处理请求,你这样做会导致无限循环,请求来到你的服务器和然后它又一次又一次地发送到服务器,你必须在你的控制器中做这样的事情哪个AppDataBaseContext是你的ef DbContext .