.Net Core在HttpResponseMessage中返回int

7
我试图在.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;
    }
}

请解释“它并没有给我想要的结果”。发生了什么或者没发生什么,是否有错误? - Andy G
我已经添加了接收响应的代码到编辑中。 - SBFrancies
1个回答

11

.net-core不再返回HttpResponseMessage

控制器有助手方法,允许您返回特定的IActionResult结果/响应。

例如:

public IActionResult MyControllerAction() {
    //...

    return Ok(100);
}

响应将返回HTTP 200状态码,响应主体中包含100


太棒了,正是我所需要的。 - SBFrancies
如何发送带有“200自定义消息”的自定义消息?即不在正文中。 - Prashant Pimpale
Prashant,您可以返回一个自定义对象,您可以在客户端上进行反序列化。 - NoloMokgosi

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接