c# 如果使用eventstream接收远程服务器的post数据打印到控制台
以下是使用C#使用EventStream接收远程服务器的POST数据并打印到控制台的示例代码:
using System;
using System.Net.Http;
using System.Threading;
using System.Threading.Tasks;
using Microsoft.AspNetCore.Http;
namespace ConsoleApp1
{
class Program
{
static async Task Main(string[] args)
{
var cancellationTokenSource = new CancellationTokenSource();
var httpClient = new HttpClient();
var request = new HttpRequestMessage(HttpMethod.Post, "http://localhost:5000/api/endpoint");
request.Headers.Add("Accept", "text/event-stream");
var response = await httpClient.SendAsync(request, HttpCompletionOption.ResponseHeadersRead, cancellationTokenSource.Token);
var stream = await response.Content.ReadAsStreamAsync();
var buffer = new byte[1024 * 4];
while (true)
{
var readCount = await stream.ReadAsync(buffer, 0, buffer.Length, cancellationTokenSource.Token);
if (readCount > 0)
{
var text = System.Text.Encoding.UTF8.GetString(buffer, 0, readCount);
Console.WriteLine(text);
}
else
{
break;
}
}
}
}
}
在这个示例中,我们使用HttpClient发送一个POST请求到远程服务器的指定API端点,同时添加“Accept”头部以指示我们希望接收EventStream格式的响应。然后,我们异步等待响应,并从响应中获取流。接下来,我们使用一个循环来读取流中的数据,并将其打印到控制台。
请注意,这个示例仅适用于EventStream格式的响应,如果响应是其他格式的,则需要相应地处理响应数据。
原文地址: http://www.cveoy.top/t/topic/4gZ 著作权归作者所有。请勿转载和采集!