【问题标题】:generate response HTTPResponseMessage to the given format生成给定格式的响应 HTTPResponseMessage
【发布时间】:2019-09-11 03:21:25
【问题描述】:

想要得到下面给出的 web api 方法的响应。 尝试使用 HttpResponseMessage 但无法以 json 格式正确生成。

{
    "Version": {
        "_Major": 1,
        "_Minor": 1,
        "_Build": -1,
        "_Revision": -1
    },
    "Content": {
        "Headers": [
            {
                "Key": "Content-Type",
                "Value": [
                    "text/plain; charset=utf-8"
                ]
            }
        ]
    },
    "StatusCode": 400,
    "ReasonPhrase": "<error reason>",
    "Headers": [],
    "RequestMessage": null,
    "IsSuccessStatusCode": false
}

【问题讨论】:

  • 您是否尝试返回适合该 json 的对象模型?
  • 我们可以返回一个包含所有这些值的 httpResponseObject 吗?

标签: c# asp.net-web-api


【解决方案1】:

知道了。 首先创建一个 httpResponseObject 并使用相应的值填充属性。 然后将对象传递给request.CreateResponse,它会返回预期的结果。

【讨论】:

    【解决方案2】:

    您可以在下面创建对象并返回它们:

    public class Version {
      public int _Major {get; set;}
      public int _Minor{get; set;}
      public int _Build{get; set;}
      public int _Revision{get; set;}
    }
    public class HttpReturnMessage {
      public Version Version {get; set;}
      public int StatusCode {get; set;}
      public string ReasonPhrase {get; set;}
      public string[] Headers {get; set;}
      public object RequestMessage {get; set;}
      public bool IsSuccessStatusCode {get; set;}
    }
    

    并在控制器中创建项目并返回它:

    HttpReturnMessage message = new HttpReturnMessage {
      Version = new Version {
        _Major= 1,
        _Minor = 1,
        _Build = 1,
        _Revision = 1
      },
      StatusCode = 300, 
    ...
    };
    
    

    并以 json 格式返回

    【讨论】:

    • 仅供参考:您刚刚重新创建了HttpResponseMessage class
    • 这就是 httpResponseMessage 类。我们为什么要重新创建它。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-04-11
    • 1970-01-01
    • 1970-01-01
    • 2015-04-15
    • 1970-01-01
    • 2016-05-22
    • 2022-06-13
    相关资源
    最近更新 更多