Информация об изменениях

Сообщение Re[2]: Порядок инициализации от 11.09.2019 14:56

Изменено 11.09.2019 17:29 Passerby

Re[2]: Порядок инициализации
Здравствуйте, KRT, Вы писали:
KRT>В первом случае во время инициализации httpClient Proxy равна null и тогда запросы идут напрямую. Что именно не работает во втором случае? Может что-то с прокси сервером?
Возникает ошибка во время запуска: System.InvalidOperationException: "When using a non-null Proxy, the WindowsProxyUsePolicy property must be set to WindowsProxyUsePolicy.UseCustomProxy."
Эта ошибка на строке кода:
return base.SendAsync(request, cancellationToken);

в методе
protected override Task<HttpResponseMessage> SendAsync(HttpRequestMessage request, System.Threading.CancellationToken cancellationToken)

Прокси через http 1 работает
Написал в организацию прокси вопрос, почему не работает http/2 через прокси, код взял отсюда: https://blog.dotnetframework.org/2019/04/05/support-http2-in-your-c-client-code/
Их ответ:
"проверили curl

curl --http2 --proxy http://93.189.149.200:41965 --proxy-user мой логи:мой пароль -I https://bittrex.com/api/v1.1/public/getmarketsummaries
HTTP/1.0 200 Connection established

HTTP/2 200
date: Tue, 10 Sep 2019 08:43:30 GMT
content-type: application/json; charset=utf-8
set-cookie: __cfduid=d8cfdff69619c414dfa6ed3a0cde432341568105009; expires=Wed, 09-Sep-20 08:43:29 GMT; path=/; domain=.bittrex.com; HttpOnly
cache-control: public, max-age=0
expires: Tue, 10 Sep 2019 08:43:30 GMT
last-modified: Tue, 10 Sep 2019 08:43:29 GMT
vary: *
strict-transport-security: max-age=15768000
x-xss-protection: 1; mode=block
x-content-type-options: nosniff
x-download-options: noopen
cf-cache-status: MISS
expect-ct: max-age=604800, report-uri="https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct"
server: cloudflare
cf-ray: 51401d585883c43d-LED


ответ есть, может я что-то не понимаю ?"


В групповых политиках или в реестре прокси не выставлял, т.к. хотелось бы, чтобы некоторые запросы могли идти без прокси. Но похоже надо выставлять в групповых политиках или в реестре.
По http 1 прокси работает без изменения реестра:
static WebProxy p = new WebProxy("93.189.149.200", 41965) { Credentials = new NetworkCredential("логин", "пароль") };
static HttpClientHandler handler = new HttpClientHandler { Proxy = p };
protected static HttpClient client = new HttpClient(handler);
Re[2]: Порядок инициализации
Все заработало. В конце сообщения корректировка кода.
Здравствуйте, KRT, Вы писали:
KRT>В первом случае во время инициализации httpClient Proxy равна null и тогда запросы идут напрямую. Что именно не работает во втором случае? Может что-то с прокси сервером?
Возникает ошибка во время запуска: System.InvalidOperationException: "When using a non-null Proxy, the WindowsProxyUsePolicy property must be set to WindowsProxyUsePolicy.UseCustomProxy."
Эта ошибка на строке кода:
return base.SendAsync(request, cancellationToken);

в методе
protected override Task<HttpResponseMessage> SendAsync(HttpRequestMessage request, System.Threading.CancellationToken cancellationToken)

Прокси через http 1 работает
Написал в организацию прокси вопрос, почему не работает http/2 через прокси, код взял отсюда: https://blog.dotnetframework.org/2019/04/05/support-http2-in-your-c-client-code/
Их ответ:
"проверили curl

curl --http2 --proxy http://93.189.149.200:41965 --proxy-user мой логи:мой пароль -I https://bittrex.com/api/v1.1/public/getmarketsummaries
HTTP/1.0 200 Connection established

HTTP/2 200
date: Tue, 10 Sep 2019 08:43:30 GMT
content-type: application/json; charset=utf-8
set-cookie: __cfduid=d8cfdff69619c414dfa6ed3a0cde432341568105009; expires=Wed, 09-Sep-20 08:43:29 GMT; path=/; domain=.bittrex.com; HttpOnly
cache-control: public, max-age=0
expires: Tue, 10 Sep 2019 08:43:30 GMT
last-modified: Tue, 10 Sep 2019 08:43:29 GMT
vary: *
strict-transport-security: max-age=15768000
x-xss-protection: 1; mode=block
x-content-type-options: nosniff
x-download-options: noopen
cf-cache-status: MISS
expect-ct: max-age=604800, report-uri="https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct"
server: cloudflare
cf-ray: 51401d585883c43d-LED


ответ есть, может я что-то не понимаю ?"


В групповых политиках или в реестре прокси не выставлял, т.к. хотелось бы, чтобы некоторые запросы могли идти без прокси. Но похоже надо выставлять в групповых политиках или в реестре.
По http 1 прокси работает без изменения реестра:
static WebProxy p = new WebProxy("93.189.149.200", 41965) { Credentials = new NetworkCredential("логин", "пароль") };
static HttpClientHandler handler = new HttpClientHandler { Proxy = p };
protected static HttpClient client = new HttpClient(handler);

Установил свойство WindowsProxyUsePolicy=WindowsProxyUsePolicy.UseCustomProxy все заработало.

Теперь как бы проверить, что запрос идет через прокси, а не напрямую.