如何发布到rest api并使用c#中的非结束流?
我需要使用RESTAPI流。问题是这个流是连续的,我需要向它发布一些JSON,这样它就知道返回什么 你们能帮帮我吗?这就是我现在所拥有的,但问题是_httpClient.PostAsync()从未完成如何发布到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);
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