Esempio n. 1
0
        /// <summary>
        /// Injects logic that takes control of the specified http client.
        /// </summary>
        public static SystemHttpClient Control(SystemHttpClient client)
        {
            Type baseType = client.GetType().BaseType;

            if (baseType.FullName != typeof(SystemHttpMessageInvoker).FullName)
            {
                return(client);
            }

            // If the client is already disposed, do nothing.
            var disposedField = baseType.GetField("_disposed", BindingFlags.NonPublic | BindingFlags.Instance);

            if ((bool)disposedField?.GetValue(client))
            {
                return(client);
            }

            // Access the message handler and other properties through reflection.
            var handlerField        = baseType.GetField("_handler", BindingFlags.NonPublic | BindingFlags.Instance);
            var handler             = (SystemHttpMessageHandler)handlerField?.GetValue(client);
            var disposeHandlerField = baseType.GetField("_disposeHandler", BindingFlags.NonPublic | BindingFlags.Instance);
            var disposeHandler      = (bool)disposeHandlerField?.GetValue(client);

            // Create the controlled client and set the same properties.
            var controlledClient = new SystemHttpClient(HttpMessageHandler.Create(handler), disposeHandler);

            controlledClient.BaseAddress = client.BaseAddress;
#if NET
            controlledClient.DefaultVersionPolicy = client.DefaultVersionPolicy;
#endif
            controlledClient.DefaultRequestVersion        = client.DefaultRequestVersion;
            controlledClient.MaxResponseContentBufferSize = client.MaxResponseContentBufferSize;
            controlledClient.Timeout = client.Timeout;
            return(controlledClient);
        }
        public async Task <IActionResult> File(string l = "https://www.vvvamersfoort.nl/uploads/cache/extra_small/uploads/media/59fc1b3e41b99/amersfoort31.jpg")
        {
            var    httpClient = new System.Net.Http.HttpClient();
            string location   = httpClient.GetType().Assembly.CodeBase;
            var    data       = await httpClient.GetStreamAsync(l);

            return(new FileStreamResult(data, "image/jpg"));
        }
Esempio n. 3
0
        public async Task<IActionResult> File(string l = "https://www.vvvamersfoort.nl/uploads/cache/medium/uploads/media/5d5d31417914d/dsc-3471.jpg")
        {
            var httpClient = new System.Net.Http.HttpClient();
            string location = httpClient.GetType().Assembly.CodeBase; 

            System.Console.ForegroundColor = ConsoleColor.Red;
            System.Console.WriteLine($"System.Net.Http.HttpClient: {location}");
            System.Console.ResetColor();

            var data = await httpClient.GetStreamAsync(l);
            return new FileStreamResult(data, "image/jpg");
        }