System.Net.Http 中的 post 请求是否有 HTTP 完成选项?
Is there a HTTP Completion Option for a post request in System.Net.Http?
我想发送一个 post 请求,但为了加快速度而不是下载整个页面,只下载头部(或内容的一些较小部分)。我知道有一种方法可以通过获取请求来执行此操作,但我需要通过 post 请求来执行此操作。
我正在使用 C# 和 System.Net.Http 进行编程。但是,如果有必要,我愿意使用另一个库。
这里是get请求如何只能下载headers:
var request = new HttpRequestMessage(HttpMethod.Get, url);
var getTask = client.SendAsync(request, HttpCompletionOption.ResponseHeadersRead);
这是我当前的代码:
var response = await client.PostAsync(url, content);
var responseString = await response.Content.ReadAsStringAsync();
HttpRequestMessage httpRequestMessage = new HttpRequestMessage(HttpMethod.Head, "your url");
httpClient.SendAsync(httpRequestMessage);
您可以在第一个示例中将 HttpMethod.Get
更改为 HttpMethod.Post
,然后分配给 request.Content
:
var request = new HttpRequestMessage(HttpMethod.Post, url)
{
Content = content,
};
var response = await client.SendAsync(request, HttpCompletionOption.ResponseHeadersRead);
当然,调用response.Content.ReadAsStringAsync()
否定了使用HttpCompletionOption.ResponseHeadersRead
的意义。
我想发送一个 post 请求,但为了加快速度而不是下载整个页面,只下载头部(或内容的一些较小部分)。我知道有一种方法可以通过获取请求来执行此操作,但我需要通过 post 请求来执行此操作。 我正在使用 C# 和 System.Net.Http 进行编程。但是,如果有必要,我愿意使用另一个库。
这里是get请求如何只能下载headers:
var request = new HttpRequestMessage(HttpMethod.Get, url);
var getTask = client.SendAsync(request, HttpCompletionOption.ResponseHeadersRead);
这是我当前的代码:
var response = await client.PostAsync(url, content);
var responseString = await response.Content.ReadAsStringAsync();
HttpRequestMessage httpRequestMessage = new HttpRequestMessage(HttpMethod.Head, "your url");
httpClient.SendAsync(httpRequestMessage);
您可以在第一个示例中将 HttpMethod.Get
更改为 HttpMethod.Post
,然后分配给 request.Content
:
var request = new HttpRequestMessage(HttpMethod.Post, url)
{
Content = content,
};
var response = await client.SendAsync(request, HttpCompletionOption.ResponseHeadersRead);
当然,调用response.Content.ReadAsStringAsync()
否定了使用HttpCompletionOption.ResponseHeadersRead
的意义。