Порядок инициализации
От: Аноним  
Дата: 10.09.19 16:45
Оценка:
Почему приведенный код работает, если порядок инициализации:
static HttpClient httpClient = new System.Net.Http.HttpClient(new Http2CustomHandler { AutomaticDecompression = DecompressionMethods.GZip | DecompressionMethods.Deflate, Proxy = p });        
static WebProxy p = new WebProxy("93.189.149.200", 41965) { Credentials = new NetworkCredential("мой логин прокси", "мой пароль прокси") };

И не работает, если порядок инициализации:
static WebProxy p = new WebProxy("93.189.149.200", 41965) { Credentials = new NetworkCredential("мой логин прокси", "мой пароль прокси") };
static HttpClient httpClient = new System.Net.Http.HttpClient(new Http2CustomHandler { AutomaticDecompression = DecompressionMethods.GZip | DecompressionMethods.Deflate, Proxy = p });

Код:
using System;
using System.Net;
using System.Net.Http;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace WindowsFormsApp1
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
        public class Http2CustomHandler : WinHttpHandler
        {
            protected override Task<HttpResponseMessage> SendAsync(HttpRequestMessage request, System.Threading.CancellationToken cancellationToken)
            {
                request.Version = new Version("2.0");
                return base.SendAsync(request, cancellationToken);
            }
        }
        //так не работает
        //static WebProxy p = new WebProxy("93.189.149.200", 41965) { Credentials = new NetworkCredential("мой логин прокси", "мой пароль прокси") };
        static HttpClient httpClient = new System.Net.Http.HttpClient(new Http2CustomHandler { AutomaticDecompression = DecompressionMethods.GZip | DecompressionMethods.Deflate, Proxy = p });
        //так работает
        static WebProxy p = new WebProxy("93.189.149.200", 41965) { Credentials = new NetworkCredential("мой логин прокси", "мой пароль прокси") };

        public static string GetHtmlFromUrl(string Url)
        {
            var resTask = httpClient.GetAsync(new Uri(Url));
            var response = resTask.Result;
            var strTask = response.Content.ReadAsStringAsync();
            var strResponse = strTask.Result;
            return strResponse;
        }
        private async void Button1_Click(object sender, EventArgs e)
        {
            string strGetAsync = "https://bittrex.com/api/v1.1/public/getmarketsummaries";
            HttpResponseMessage response = await httpClient.GetAsync(strGetAsync).ConfigureAwait(false);
            HttpStatusCode responseStatus = response.StatusCode;
        }
    }
}
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.