【问题标题】:.Net Core returning an int in HttpResponseMessage.Net Core 在 HttpResponseMessage 中返回一个 int
【发布时间】:2018-01-03 10:31:54
【问题描述】:

我正在尝试在 .Net Core 中复制以下 ASP.Net 代码:

return Request.CreateResponse( HttpStatusCode.OK, 100 );

我试过了:

using (MemoryStream ms = new MemoryStream())
{
    using (StreamWriter sw = new StreamWriter(ms))
    {
        sw.Write(100);
        return new HttpResponseMessage(HttpStatusCode.OK) {Content = new StreamContent(sw.BaseStream)};
    }
}

但这并没有给我想要的结果。我正在使用一个遗留 API,它必须从响应流中读取一个整数,所以我没有更改设计的选项。

下面是接收响应的代码,TryParse 总是失败,我需要它成功。不幸的是,我无法调试它:

using (StreamReader reader = new StreamReader(response.GetResponseStream()))
{
    string result = reader.ReadToEnd();

    int value = 0;

    if (Int32.TryParse(result, out value))
    {
        return value;
    }
}

【问题讨论】:

标签: c# asp.net .net-core asp.net-core-2.0


【解决方案1】:

.net-core 不再返回 HttpResponseMessage

Controller 具有帮助方法,允许您返回特定的 IActionResult 结果/响应..

喜欢

public IActionResult MyControllerAction() {
    //...

    return Ok(100);
}

这将返回一个 HTTP 200 响应,响应正文中带有 100

【讨论】:

  • 太棒了,正是我需要的。
  • 如何使用200 Custom Message 发送自定义消息?即不在体内
  • Prashant 你可以返回一个自定义对象,你可以在客户端反序列化
猜你喜欢
  • 2023-03-08
  • 2017-08-09
  • 2019-06-05
  • 2020-01-13
  • 2019-01-09
  • 2021-01-10
  • 2015-04-22
  • 1970-01-01
  • 2017-04-13
相关资源
最近更新 更多