c# webapi 流逐字返回
在 C# Web API 中,可以使用流来逐字返回数据。以下是一个简单的示例:
- 创建一个控制器方法来返回流数据
[HttpGet]
public HttpResponseMessage GetStream()
{
var response = new HttpResponseMessage();
response.Content = new PushStreamContent((stream, content, context) =>
{
// 这里可以写入流数据
byte[] buffer = Encoding.UTF8.GetBytes("Hello, world!");
stream.Write(buffer, 0, buffer.Length);
// 如果有更多数据,可以继续写入流
// ...
stream.Flush();
stream.Close();
});
return response;
}
- 在客户端调用该方法来获取流数据
var client = new HttpClient();
var response = await client.GetAsync("http://localhost/api/sample/getstream");
if (response.IsSuccessStatusCode)
{
var stream = await response.Content.ReadAsStreamAsync();
// 逐字读取流数据
var buffer = new byte[1024];
int bytesRead;
while ((bytesRead = await stream.ReadAsync(buffer, 0, buffer.Length)) > 0)
{
var text = Encoding.UTF8.GetString(buffer, 0, bytesRead);
Console.WriteLine(text);
}
}
以上代码演示了如何使用 PushStreamContent 类来创建一个流内容,并在客户端使用 ReadAsStreamAsync 方法逐字读取流数据。在实际应用中,可以根据需要自定义流内容和数据读取方式。
原文地址: http://www.cveoy.top/t/topic/3GI 著作权归作者所有。请勿转载和采集!