【发布时间】:2020-01-18 21:40:54
【问题描述】:
我正在使用 v2.2 设置一个新的 .net core webapi。 这有一个简单的 get 函数,如果请求是心跳或 Json 对象,它应该返回当前日期。
我已使用 IActionResult 返回类型将心跳函数设置为 HTTPGet。 我已经尝试过同时使用 Controllerbase 类和 Controller 类,但无论我尝试哪一个都会遇到同样的问题
我的控制器类声明如下:
public class TestController : ControllerBase
{
IConfiguration _iconfiguration;
public TestController(IConfiguration configuration)
{
_iconfiguration = configuration;
}
// GET: api/Interceptor
[HttpGet("Heartbeat")]
public IActionResult Get()
{
//Set the return DateTime for return value
string currentDateTime = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss:fff");
return Ok(currentDateTime);
//return Ok("Heartbeat Message Received");
//return Ok(new { message = "Heartbeat Message Received: " + currentDateTime });
//var result = new OkObjectResult(new { message = "200 OK", currentDate = DateTime.Now });
//return result;
//return Ok(Json("123"));
//return new string[] { "value1", "value2" };
}
}
如您所见,我尝试了各种方法来尝试获取要返回的返回字符串。 当我在 Postman 中对该服务进行调用时,我得到了 200Ok 返回状态,但是我的响应主体(在这种情况下为当前日期时间)只是返回为空。 尝试的返回类型:
- 好的(结果)
- 好的(字符串)
- OkResultObject(对象)
- 字符串
- 数组
在所有情况下,Postman 都会返回状态 200 Ok 但没有正文。
Screenshot of what I see when I do a postman call
我使用的IDE是VS2017 Enterprise version 15.9.7
【问题讨论】:
-
如果您在浏览器中粘贴 GET 请求的 url,您会看到正文吗?
-
@KrishnaDhugana 不,我在浏览器中的 Get 请求也给了我相同的结果
-
IActionResult不是都与旧的 MVC 5.2 一起消失了,您现在应该返回对象吗? -
你怎么能确定它没有返回正文中的值,而只是返回 200 成功代码?能发个截图吗?
-
@Thangadurai 我附上了我在拨打邮递员电话时得到的结果的屏幕截图。如您所见,它返回 HTTP 状态代码,但不是我要传回的结果
标签: c# .net asp.net-core-webapi