You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

ASP.NET MVC控制器如何返回ASCII字节流?需用FileResult吗?

问题解答

关于Java应用的返回本质

供应商的Java应用返回的"OK"和你的C#应用返回的内容,在网络传输层面都是字节流。Wireshark显示的4F 4B其实就是"OK"的ASCII编码字节('O'对应0x4F,'K'对应0x4B),而你的C#应用返回的"OK"在网络上传输的也是完全相同的字节,只是Wireshark对响应的解析显示逻辑不同,才会呈现出"文本形式的OK"和十六进制字节的区别。

是否需要用FileResult实现?

不需要。你的Content方法已经可以生成相同的字节输出,核心是要确保编码一致。默认情况下,ASP.NET MVC的Content方法会使用UTF-8编码,而"OK"在UTF-8和ASCII中的字节是完全一致的,所以其实现在的输出和对方已经是一样的。如果要更明确地对齐编码,可以显式指定ASCII编码:

public async Task<ActionResult> GetRequest(string SN, string INFO)
{
    string response = "OK";
    // 显式指定ASCII编码,确保字节输出和ASCII完全一致
    return Content(response, "text/plain", Encoding.ASCII);
}

补充说明

如果后续需要返回非ASCII字符,才需要注意编码差异,但针对当前的"OK"场景,不管是默认UTF-8还是显式ASCII,传输的字节都是4F 4B,和对方的Java应用完全一致。FileResult通常用于返回文件类型的响应,这里用Content方法更贴合文本响应的场景。

内容的提问来源于stack exchange,提问作者jstuardo

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.17 18:45:42