File: SocketsHttpHandler.Mono.cs

package info (click to toggle)
mono 6.8.0.105%2Bdfsg-3.3
  • links: PTS, VCS
  • area: main
  • in suites: bookworm
  • size: 1,284,512 kB
  • sloc: cs: 11,172,132; xml: 2,850,069; ansic: 671,653; cpp: 122,091; perl: 59,366; javascript: 30,841; asm: 22,168; makefile: 20,093; sh: 15,020; python: 4,827; pascal: 925; sql: 859; sed: 16; php: 1
file content (50 lines) | stat: -rw-r--r-- 1,965 bytes parent folder | download | duplicates (5)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
// Licensed to the .NET Foundation under one or more agreements.
// The .NET Foundation licenses this file to you under the MIT license.
// See the LICENSE file in the project root for more information.

using System.Globalization;
using System.Threading;
using System.Threading.Tasks;

namespace System.Net.Http
{
	partial class SocketsHttpHandler : IMonoHttpClientHandler
	{
		bool IMonoHttpClientHandler.SupportsAutomaticDecompression => true;

		long IMonoHttpClientHandler.MaxRequestContentBufferSize {
			// This property is not supported. In the .NET Framework it was only used when the handler needed to 
			// automatically buffer the request content. That only happened if neither 'Content-Length' nor 
			// 'Transfer-Encoding: chunked' request headers were specified. So, the handler thus needed to buffer
			// in the request content to determine its length and then would choose 'Content-Length' semantics when
			// POST'ing. In .NET Core and UAP platforms, the handler will resolve the ambiguity by always choosing
			// 'Transfer-Encoding: chunked'. The handler will never automatically buffer in the request content.
			get {
				return 0; // Returning zero is appropriate since in .NET Framework it means no limit.
			}

			set {
				if (value < 0) {
					throw new ArgumentOutOfRangeException (nameof (value));
				}

				if (value > HttpContent.MaxBufferSize) {
					throw new ArgumentOutOfRangeException (nameof (value), value,
					    string.Format (CultureInfo.InvariantCulture, SR.net_http_content_buffersize_limit,
					    HttpContent.MaxBufferSize));
				}

				CheckDisposedOrStarted ();

				// No-op on property setter.
			}
		}

		// This is only used by MonoWebRequestHandler.
		void IMonoHttpClientHandler.SetWebRequestTimeout (TimeSpan timeout)
		{
		}

		Task<HttpResponseMessage> IMonoHttpClientHandler.SendAsync (HttpRequestMessage request, CancellationToken cancellationToken) => SendAsync (request, cancellationToken);
	}
}