Почему приведенный код работает, если порядок инициализации:
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;
}
}
}