我有一个curl调用,它将连接到数据流,并在每次将新值发布到数据流时返回一个值。
curl -XPOST -d uuid=\"94701e51-a24f-42b8-b8fd-81e0ecb79a2b\" http://bms.org/republish
我尝试过使用此代码生成HttpClient帖子以生成相同的http请求
主要:
static async Task Main(string[] args)
{
Republish r = new Republish(); //The class name.
try
{
Task.Run(() => r.Test()).Wait();
Console.WriteLine("bla");
Console.ReadKey();
}
catch (Exception ex) //Exceptions here or in the function will be caught here
{
Console.WriteLine("Exception: " + ex.Message);
}
}
public async Task<string> Test()
{
var client = new HttpClient();
client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("*/*"));
client.DefaultRequestHeaders.UserAgent.Add(new ProductInfoHeaderValue("curl", "7.48.0"));
client.DefaultRequestHeaders.ExpectContinue = false;
var requestContent = new StringContent("uuid=\"94701e51-a24f-42b8-b8fd-81e0ecb79a2b\"", Encoding.UTF8, "application/x-www-form-urlencoded");
HttpResponseMessage response = await client.PostAsync("http://bms.org/republish", requestContent);
HttpContent responseContent = response.Content;
using (var reader = new StreamReader(await responseContent.ReadAsStreamAsync()))
{
Console.WriteLine(await reader.ReadToEndAsync());
}
//I never got to the return statement because it breaks.
}
但是这永远不会产生任何结果。经过一番搜索后,我认为这是因为正在等待客户端。PostAsync正在等待接收整个有效负载,然后再对其进行流传输。
如何实时流式传输?