如何发布到rest api并使用c#中的非结束流?

如何发布到rest api并使用c#中的非结束流?,c#,asp.net-core,C#,Asp.net Core,我需要使用RESTAPI流。问题是这个流是连续的,我需要向它发布一些JSON,这样它就知道返回什么 你们能帮帮我吗?这就是我现在所拥有的,但问题是_httpClient.PostAsync()从未完成 var content = new StringContent("whatever", Encoding.UTF8, "application/json"); var response = await _httpClient.PostAsync("URL", content);

我需要使用RESTAPI流。问题是这个流是连续的,我需要向它发布一些JSON,这样它就知道返回什么

你们能帮帮我吗?这就是我现在所拥有的,但问题是_httpClient.PostAsync()从未完成

    var content = new StringContent("whatever", Encoding.UTF8, "application/json");

    var response = await _httpClient.PostAsync("URL", content);

    //not reaching this point here

    var stream = await response.Content.ReadAsStreamAsync();

虽然不建议为此目的使用http,但您可以使用此代码实现它

HttpRequestMessage request = new HttpRequestMessage(HttpMethod.Post, "URL");
request.Content = new StringContent("whatever", Encoding.UTF8, "application/json");
await _httpClient.SendAsync(request, HttpCompletionOption.ResponseHeadersRead);

这里的关键部分是
HttpCompletionOption。ResponseHeadersRead
,它在响应流准备好后立即完成
SendAsync

不确定它是否对您有帮助,但如果您使用SendAsync方法,您可以告诉HTTPClient是等待完整的响应,还是只等待标头:

var request=newhttprequestmessage(HttpMethod.Post,“URL”);
request.Content=newstringcontent(“whatever”,Encoding.UTF8,“application/json”);
var response=wait client.sendaync(请求,HttpCompletionOption.ResponseHeadersRead);
var stream=await response.Content.ReadAsStreamAsync();

由于HTTP是无状态连接,我认为不可能有无终止流。这意味着它将在特定时间后关闭连接。顺便说一句,很有趣。REST依赖的HTML连接较少,因此无法支持流。你需要利用一些支持技术。你是说http。Html是一种标记语言:P