HttpClient.DefaultRequestHeaders.ExpectContinue。ExpectContinue 的用途是什么,它在什么条件下设置为 true 或 false。

Nul*_*nce 7 .net c# http httpclient

我一直在浏览一些代码并且遇到了

  private readonly HttpClient _client;
 _client = new HttpClient(clientHandler);
 _client.DefaultRequestHeaders.ExpectContinue = false;
Run Code Online (Sandbox Code Playgroud)

msdn ( https://goo.gl/IoZlB1 ) 不包含有关 ExpectContinue 的太多信息。此外,msdn ( https://goo.gl/IoZlB1 )上的 HttpRequestHeader Enumeration将 Expect 描述为

Expect 标头,它指定客户端所需的特定服务器行为。

我希望有人能对 ExpectContinue 有所了解。它的目的是什么,如果它是真的或假的,会发生什么?

Ogu*_*gul 9

continue 状态主要用于首先发送请求头,以查看服务器是否允许(接受)请求。如果服务器说 OK,它会发送一个 100-continue 并且客户端继续处理请求正文。否则,服务器响应 417(期望失败)。

假设您要将 1 GB 的文件上传到服务器上的特定文件夹。如果直接开始传输,服务器不接受大于512MB的文件或文件夹不存在,服务器将不接受文件,传输对双方都是一种资源浪费。

此处查看 W3C 文档

参见第 8.2.3 节 100(继续)状态的使用