我试图在.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;
}
}
答案 0 :(得分:9)
.net-core不再返回HttpResponseMessage
。
Controller具有帮助方法,允许您返回特定的IActionResult
结果/响应..
像
public IActionResult MyControllerAction() {
//...
return Ok(100);
}
将在响应正文中返回带有100
的HTTP 200响应