.NET 5 Azure Function HTTP响应如何直接返回纯字符串并带200状态码
解决方案
你当前使用的是.NET 5 隔离进程模型的Azure Function,直接使用OkObjectResult会将整个结果对象序列化输出,因此会返回包含Value、Formatters等字段的JSON结构,而非你需要的纯字符串。
方案1:使用原生HttpResponseData构造响应(官方推荐)
将方法返回值修改为HttpResponseData,直接构造响应内容:
public static async Task<HttpResponseData> Run( [HttpTrigger(AuthorizationLevel.Anonymous, "get", Route = null)] HttpRequestData req, ILogger log) { string result = "for the love of god, I just want to return this string"; if (result == null) { return req.CreateResponse(System.Net.HttpStatusCode.InternalServerError); } var response = req.CreateResponse(System.Net.HttpStatusCode.OK); response.Headers.Add("Content-Type", "text/plain; charset=utf-8"); await response.WriteStringAsync(result); return response; }
方案2:保留IActionResult返回类型,改用ContentResult
无需修改方法签名,直接替换返回逻辑即可:
return result != null ? new ContentResult { Content = result, ContentType = "text/plain", StatusCode = 200 } : new StatusCodeResult(500);
内容的提问来源于stack exchange,提问作者Rob Bowman
相关产品推荐
相关产品推荐

