Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/jpa/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 使用HttpResponseMessage从API返回意外数据_C#_Httpresponse_Httpresponsemessage - Fatal编程技术网

C# 使用HttpResponseMessage从API返回意外数据

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": [ {

我有一个问题,在我的回复中,Body返回了我不想包含的数据,而我想返回的数据没有包含在其中。我尝试使用Swagger v1.0版

返回的数据

{
 "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);
    }