c# 如果使用eventstream接收远程服务器的post且有参数的数据打印到控制台
以下是一个使用eventstream接收远程服务器的post请求,并将其参数打印到控制台的示例代码:
using System;
using System.Collections.Generic;
using System.IO;
using System.Net;
using System.Text;
using System.Threading.Tasks;
namespace EventStreamExample
{
class Program
{
static void Main(string[] args)
{
var request = (HttpWebRequest)WebRequest.Create("http://example.com");
request.Method = "POST";
request.ContentType = "text/event-stream";
var data = Encoding.UTF8.GetBytes("param1=value1¶m2=value2");
request.ContentLength = data.Length;
using (var stream = request.GetRequestStream())
{
stream.Write(data, 0, data.Length);
}
var response = (HttpWebResponse)request.GetResponse();
using (var reader = new StreamReader(response.GetResponseStream()))
{
while (true)
{
var line = reader.ReadLine();
if (string.IsNullOrEmpty(line))
{
continue;
}
var parts = line.Split(new[] { ':' }, 2);
if (parts.Length == 2)
{
var eventName = parts[0].Trim();
var eventData = parts[1].Trim();
if (eventName == "data")
{
Console.WriteLine(eventData);
}
}
}
}
}
}
}
在这个示例中,我们创建了一个使用POST方法向远程服务器发送数据的HttpWebRequest对象,并设置了请求的Content-Type为text/event-stream。我们将要发送的数据编码为字节数组,并将其写入请求流中。
接下来,我们向远程服务器发送请求,并获取响应流。我们使用StreamReader逐行读取响应流中的内容,解析每个事件的名称和数据,并将其打印到控制台上。
请注意,这个示例假设远程服务器会发送text/event-stream格式的事件流,其中每个事件都以"data:"开头,后面跟着事件的数据。如果远程服务器使用不同的格式,你需要相应地修改代码。
原文地址: https://www.cveoy.top/t/topic/4l5 著作权归作者所有。请勿转载和采集!