C# 使用HttpResponseMessage从API返回意外数据
我有一个问题,在我的回复中,Body返回了我不想包含的数据,而我想返回的数据没有包含在其中。我尝试使用Swagger v1.0版 返回的数据C# 使用HttpResponseMessage从API返回意外数据,c#,httpresponse,httpresponsemessage,C#,Httpresponse,Httpresponsemessage,我有一个问题,在我的回复中,Body返回了我不想包含的数据,而我想返回的数据没有包含在其中。我尝试使用Swagger v1.0版 返回的数据 { "version": { "major": 1, "minor": 1, "build": -1, "revision": -1, "majorRevision": -1, "minorRevision": -1 }, "content": { "headers": [ {
{
"version": {
"major": 1,
"minor": 1,
"build": -1,
"revision": -1,
"majorRevision": -1,
"minorRevision": -1
},
"content": {
"headers": [
{
"key": "Content-Type",
"value": [
"application/json"
]
}
]
},
"statusCode": 200,
"reasonPhrase": "OK",
"headers": [],
"isSuccessStatusCode": true
}
预期回报
这是我的密码:
[HttpGet]
[Authorize]
public HttpResponseMessage GetStudent(int id)
{
try
{
var student = _studentService.Find(id);
return ModelHelper.ComposeResponse(HttpStatusCode.OK, student);
}
catch (Exception ex)
{
var exceptionMessage = ModelHelper.GetErrors(ex, _mailService);
ModelState.AddModelError(new ValidationResult(exceptionMessage));
}
return ModelHelper.ComposeResponse(HttpStatusCode.BadRequest, ModelHelper.GetModelStateErrors(ModelState));
}
助手代码
public static HttpResponseMessage ComposeResponse(HttpStatusCode statusCode, object responseData)
{
var jsonResponse = JsonConvert.SerializeObject(responseData);
var resp = new HttpResponseMessage
{
StatusCode = statusCode,
Content = new StringContent(jsonResponse, Encoding.UTF8, Constants.Common.ApplicationJson)
};
resp.Content.Headers.ContentType = new MediaTypeHeaderValue(Constants.Common.ApplicationJson);
return resp;
}
下面是一种使用CreateResponse函数实现这一点的方法。这将从传递到CreateResponse函数的对象创建json输出 响应将如下所示 {“Stud_id”:1,“Stud_name”:“test”}
这是ASP.NET MVC项目还是ASP.NET MVC核心项目?HttpResponseMessage是一种Web API类型,MVC不直接支持它。@CodeCaster MVC核心项目SIR什么是CreateResponse?我弄错了。这是延期吗?
public class StudentObject
{
public int Stud_id { get; set; }
public string Stud_name { get; set; }
}
[HttpGet]
public HttpResponseMessage GetStudent(int id)
{
StudentObject studentObject = new StudentObject
{
Stud_id = 1,
Stud_name = "test"
};
return Request.CreateResponse(System.Net.HttpStatusCode.OK, studentObject);
}