<?xml version='1.0' encoding="utf-8"?>
      <rss version='2.0'>
      <channel>
      <title>Форум на Исходниках.RU</title>
      <link>https://forum.sources.ru</link>
      <description>Форум на Исходниках.RU</description>
      <generator>Форум на Исходниках.RU</generator>
  	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=426526&amp;view=findpost&amp;p=3863871</guid>
        <pubDate>Tue, 19 Apr 2022 13:16:22 +0000</pubDate>
        <title>Ошибка TIdHTTP.Get при использовании прокси</title>
        <link>https://forum.sources.ru/index.php?showtopic=426526&amp;view=findpost&amp;p=3863871</link>
        <description><![CDATA[Fr0sT: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=426526&view=findpost&p=3863282'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>Jin X &#064; <time class="tag-quote__quoted-time" datetime="2022-04-13T14:17:25+03:00">13.04.22, 11:17</time></span><div class='quote '>каким образом? :wacko:</div></div><br>
Сниффер. Или логи в самом приложении.<br>
Если софт_А работает, а софт_Б - нет - алгоритм очень простой, надо всего лишь подогнать софт_Б под работающий вариант]]></description>
        <author>Fr0sT</author>
        <category>Delphi: Сетевое программирование</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=426526&amp;view=findpost&amp;p=3863282</guid>
        <pubDate>Wed, 13 Apr 2022 11:17:25 +0000</pubDate>
        <title>Ошибка TIdHTTP.Get при использовании прокси</title>
        <link>https://forum.sources.ru/index.php?showtopic=426526&amp;view=findpost&amp;p=3863282</link>
        <description><![CDATA[Jin X: <strong class='tag-b'>Fr0sT</strong>, каким образом? :wacko:<br>
Вообще, этот прокси для использования в софте, по идее, не должен какие-то особенные требования предъявлять :-?]]></description>
        <author>Jin X</author>
        <category>Delphi: Сетевое программирование</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=426526&amp;view=findpost&amp;p=3863166</guid>
        <pubDate>Tue, 12 Apr 2022 07:45:36 +0000</pubDate>
        <title>Ошибка TIdHTTP.Get при использовании прокси</title>
        <link>https://forum.sources.ru/index.php?showtopic=426526&amp;view=findpost&amp;p=3863166</link>
        <description><![CDATA[Fr0sT: Сначала убедиться, что трафик от твоей программы до прокси идентичен трафику от браузеров.]]></description>
        <author>Fr0sT</author>
        <category>Delphi: Сетевое программирование</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=426526&amp;view=findpost&amp;p=3862598</guid>
        <pubDate>Mon, 04 Apr 2022 19:11:46 +0000</pubDate>
        <title>Ошибка TIdHTTP.Get при использовании прокси</title>
        <link>https://forum.sources.ru/index.php?showtopic=426526&amp;view=findpost&amp;p=3862598</link>
        <description><![CDATA[Jin X: В первом коде пишу <strong class='tag-b'>ProxyURI = &#39;https:/</strong><strong class='tag-b'>/66.94.120.161:443&#39;</strong> – всё работает.<br>
А этот прокси работает в браузерах, но в проге не хочет.<br>
Не понимаю, в чём прикол?&#33; <br>
<br>
<span class="tag-color tag-color-named" data-value="mergepost" style="color: mergepost"><span class='tag-size' data-value='7' style='font-size:7pt;'>Добавлено <time class="tag-mergetime" datetime="2022-04-04T19:14:42+00:00">04.04.22, 19:14</time></span></span><br>
Причём, с прокси он соединяется, но почему-то выдаёт ошибку 400. Если поменять пароль, скажем, на неверный, будет ошибка авторизации. <br>
<br>
<span class="tag-color tag-color-named" data-value="mergepost" style="color: mergepost"><span class='tag-size' data-value='7' style='font-size:7pt;'>Добавлено <time class="tag-mergetime" datetime="2022-04-04T19:32:48+00:00">04.04.22, 19:32</time></span></span><br>
Короче, вот что я ещё сделал.<br>
Накидал прожку на Python:<br>
<div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">import requests</div><div class="code_line">&nbsp;</div><div class="code_line">#proxy = { &#39;https&#39;: &#39;66.94.120.161:443&#39; }</div><div class="code_line">proxy = { &#39;https&#39;: &#39;https://***:***@1.2.3.4:10733&#39; }</div><div class="code_line">print(requests.get(&#39;https://2ip.ru&#39;, proxies=proxy).json())</div></ol></div></div></div></div><script>preloadCodeButtons('1');</script><br>
Результат:<br>
<div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">Traceback (most recent call last):</div><div class="code_line">&nbsp;&nbsp;File &quot;D:\Lang\Python3\lib\site-packages\urllib3\connectionpool.py&quot;, line 700, in urlopen</div><div class="code_line">&nbsp;&nbsp; &nbsp;self._prepare_proxy(conn)</div><div class="code_line">&nbsp;&nbsp;File &quot;D:\Lang\Python3\lib\site-packages\urllib3\connectionpool.py&quot;, line 994, in _prepare_proxy</div><div class="code_line">&nbsp;&nbsp; &nbsp;conn.connect()</div><div class="code_line">&nbsp;&nbsp;File &quot;D:\Lang\Python3\lib\site-packages\urllib3\connection.py&quot;, line 364, in connect</div><div class="code_line">&nbsp;&nbsp; &nbsp;self.sock = conn = self._connect_tls_proxy(hostname, conn)</div><div class="code_line">&nbsp;&nbsp;File &quot;D:\Lang\Python3\lib\site-packages\urllib3\connection.py&quot;, line 499, in _connect_tls_proxy</div><div class="code_line">&nbsp;&nbsp; &nbsp;socket = ssl_wrap_socket(</div><div class="code_line">&nbsp;&nbsp;File &quot;D:\Lang\Python3\lib\site-packages\urllib3\util\ssl_.py&quot;, line 453, in ssl_wrap_socket</div><div class="code_line">&nbsp;&nbsp; &nbsp;ssl_sock = _ssl_wrap_socket_impl(sock, context, tls_in_tls)</div><div class="code_line">&nbsp;&nbsp;File &quot;D:\Lang\Python3\lib\site-packages\urllib3\util\ssl_.py&quot;, line 495, in _ssl_wrap_socket_impl</div><div class="code_line">&nbsp;&nbsp; &nbsp;return ssl_context.wrap_socket(sock)</div><div class="code_line">&nbsp;&nbsp;File &quot;D:\Lang\Python3\lib\ssl.py&quot;, line 500, in wrap_socket</div><div class="code_line">&nbsp;&nbsp; &nbsp;return self.sslsocket_class._create(</div><div class="code_line">&nbsp;&nbsp;File &quot;D:\Lang\Python3\lib\ssl.py&quot;, line 1040, in _create</div><div class="code_line">&nbsp;&nbsp; &nbsp;self.do_handshake()</div><div class="code_line">&nbsp;&nbsp;File &quot;D:\Lang\Python3\lib\ssl.py&quot;, line 1309, in do_handshake</div><div class="code_line">&nbsp;&nbsp; &nbsp;self._sslobj.do_handshake()</div><div class="code_line">ssl.SSLError: [SSL: WRONG_VERSION_NUMBER] wrong version number (_ssl.c:1129)</div><div class="code_line">&nbsp;</div><div class="code_line">During handling of the above exception, another exception occurred:</div><div class="code_line">&nbsp;</div><div class="code_line">Traceback (most recent call last):</div><div class="code_line">&nbsp;&nbsp;File &quot;D:\Lang\Python3\lib\site-packages\requests\adapters.py&quot;, line 440, in send</div><div class="code_line">&nbsp;&nbsp; &nbsp;resp = conn.urlopen(</div><div class="code_line">&nbsp;&nbsp;File &quot;D:\Lang\Python3\lib\site-packages\urllib3\connectionpool.py&quot;, line 785, in urlopen</div><div class="code_line">&nbsp;&nbsp; &nbsp;retries = retries.increment(</div><div class="code_line">&nbsp;&nbsp;File &quot;D:\Lang\Python3\lib\site-packages\urllib3\util\retry.py&quot;, line 592, in increment</div><div class="code_line">&nbsp;&nbsp; &nbsp;raise MaxRetryError(_pool, url, error or ResponseError(cause))</div><div class="code_line">urllib3.exceptions.MaxRetryError: HTTPSConnectionPool(host=&#39;2ip.ru&#39;, port=443): Max retries exceeded with url: / (Caused by ProxyError(&#39;Your proxy appears to only use HTTP and not HTTPS, try changing your proxy URL to be HTTP. See: https://urllib3.readthedocs.io/en/1.26.x/advanced-usage.html#https-proxy-error-http-proxy&#39;, SSLError(SSLError(1, &#39;[SSL: WRONG_VERSION_NUMBER] wrong version number (_ssl.c:1129)&#39;))))</div><div class="code_line">&nbsp;</div><div class="code_line">During handling of the above exception, another exception occurred:</div><div class="code_line">&nbsp;</div><div class="code_line">Traceback (most recent call last):</div><div class="code_line">&nbsp;&nbsp;File &quot;D:\proj\download.py&quot;, line 5, in &#60;module&#62;</div><div class="code_line">&nbsp;&nbsp; &nbsp;print(requests.get(&#39;https://2ip.ru&#39;, proxies=proxy).json())</div><div class="code_line">&nbsp;&nbsp;File &quot;D:\Lang\Python3\lib\site-packages\requests\api.py&quot;, line 75, in get</div><div class="code_line">&nbsp;&nbsp; &nbsp;return request(&#39;get&#39;, url, params=params, **kwargs)</div><div class="code_line">&nbsp;&nbsp;File &quot;D:\Lang\Python3\lib\site-packages\requests\api.py&quot;, line 61, in request</div><div class="code_line">&nbsp;&nbsp; &nbsp;return session.request(method=method, url=url, **kwargs)</div><div class="code_line">&nbsp;&nbsp;File &quot;D:\Lang\Python3\lib\site-packages\requests\sessions.py&quot;, line 529, in request</div><div class="code_line">&nbsp;&nbsp; &nbsp;resp = self.send(prep, **send_kwargs)</div><div class="code_line">&nbsp;&nbsp;File &quot;D:\Lang\Python3\lib\site-packages\requests\sessions.py&quot;, line 645, in send</div><div class="code_line">&nbsp;&nbsp; &nbsp;r = adapter.send(request, **kwargs)</div><div class="code_line">&nbsp;&nbsp;File &quot;D:\Lang\Python3\lib\site-packages\requests\adapters.py&quot;, line 513, in send</div><div class="code_line">&nbsp;&nbsp; &nbsp;raise ProxyError(e, request=request)</div><div class="code_line">requests.exceptions.ProxyError: HTTPSConnectionPool(host=&#39;2ip.ru&#39;, port=443): Max retries exceeded with url: / (Caused by ProxyError(&#39;Your proxy appears to only use HTTP and not HTTPS, try changing your proxy URL to be HTTP. See: https://urllib3.readthedocs.io/en/1.26.x/advanced-usage.html#https-proxy-error-http-proxy&#39;, SSLError(SSLError(1, &#39;[SSL: WRONG_VERSION_NUMBER] wrong version number (_ssl.c:1129)&#39;))))</div></ol></div></div></div></div><br>
Неверная версия SSL ???]]></description>
        <author>Jin X</author>
        <category>Delphi: Сетевое программирование</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=426526&amp;view=findpost&amp;p=3862538</guid>
        <pubDate>Mon, 04 Apr 2022 10:40:24 +0000</pubDate>
        <title>Ошибка TIdHTTP.Get при использовании прокси</title>
        <link>https://forum.sources.ru/index.php?showtopic=426526&amp;view=findpost&amp;p=3862538</link>
        <description><![CDATA[Jin X: Получаю ошибку <strong class='tag-b'>Exception EIdHTTPProtocolException</strong> с сообщением <strong class='tag-b'>HTTP/1.1 400 Bad Request.</strong><br>
Прокси 100% рабочий, логин-пароль верный. Проверено в браузерах FireFox и IE.<br>
<br>
ЧЯДНТ?<br>
<br>
<div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">{$APPTYPE CONSOLE}</div><div class="code_line">uses System.SysUtils, IdHTTP, IdSocks, IdSSLOpenSSL, IdCookieManager, IdCompressorZLib, IdURI;</div><div class="code_line">&nbsp;</div><div class="code_line">const</div><div class="code_line">&nbsp;&nbsp;DefaultUserAgent = &#39;Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/98.0.4758.102 Safari/537.36&#39;;</div><div class="code_line">&nbsp;&nbsp;DefaultReferer = &#39;https://google.com/&#39;;</div><div class="code_line">&nbsp;&nbsp;ProxyURI = &#39;https://user:pwd@1.2.3.4:10733&#39;; &nbsp;// здесь, естественно, проставлены нужные данные</div><div class="code_line">&nbsp;&nbsp;RequestURL = &#39;https://2ip.ru&#39;;</div><div class="code_line">&nbsp;</div><div class="code_line">var HTTPS: TIdHTTP;</div><div class="code_line">begin</div><div class="code_line">&nbsp;&nbsp;HTTPS := TIdHTTP.Create(nil);</div><div class="code_line">&nbsp;&nbsp;with HTTPS do</div><div class="code_line">&nbsp;&nbsp;begin</div><div class="code_line">&nbsp;&nbsp; &nbsp;IOHandler := TIdSSLIOHandlerSocketOpenSSL.Create(HTTPS);</div><div class="code_line">&nbsp;&nbsp; &nbsp;CookieManager := TIdCookieManager.Create(HTTPS);</div><div class="code_line">&nbsp;&nbsp; &nbsp;Compressor := TIdCompressorZLib.Create(HTTPS);</div><div class="code_line">&nbsp;&nbsp; &nbsp;HandleRedirects := True;</div><div class="code_line">&nbsp;&nbsp; &nbsp;AllowCookies := True;</div><div class="code_line">&nbsp;&nbsp; &nbsp;Request.UserAgent := DefaultUserAgent;</div><div class="code_line">&nbsp;&nbsp; &nbsp;Request.Accept := &#39;*/*&#39;;</div><div class="code_line">&nbsp;&nbsp; &nbsp;Request.AcceptEncoding := &#39;gzip, deflate, br&#39;;</div><div class="code_line">&nbsp;&nbsp; &nbsp;Request.ContentType := &#39;text/plain;charset=UTF-8&#39;;</div><div class="code_line">&nbsp;&nbsp; &nbsp;Request.AcceptLanguage := &#39;ru-RU,ru;q=0.9,en-US;q=0.8,en;q=0.7&#39;;</div><div class="code_line">&nbsp;&nbsp; &nbsp;Request.Connection := &#39;keep-alive&#39;;</div><div class="code_line">&nbsp;&nbsp; &nbsp;Request.Referer := DefaultReferer;</div><div class="code_line">&nbsp;&nbsp; &nbsp;with ProxyParams, TIdURI.Create(ProxyURI) do</div><div class="code_line">&nbsp;&nbsp; &nbsp;begin</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;ProxyServer := Host;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;ProxyPort := StrToIntDef(Port, 8080);</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;ProxyUsername := Username;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;ProxyPassword := Password;</div><div class="code_line">&nbsp;&nbsp; &nbsp;end;</div><div class="code_line">&nbsp;&nbsp; &nbsp;WriteLn(Get(RequestURL));</div><div class="code_line">&nbsp;&nbsp; &nbsp;Free;</div><div class="code_line">&nbsp;&nbsp;end;</div><div class="code_line">end.</div></ol></div></div></div></div> <br>
<br>
<span class="tag-color tag-color-named" data-value="mergepost" style="color: mergepost"><span class='tag-size' data-value='7' style='font-size:7pt;'>Добавлено <time class="tag-mergetime" datetime="2022-04-04T10:47:25+00:00">04.04.22, 10:47</time></span></span><br>
Тот же прокси для SOCKS (там отличается только порт) прекрасно работает:<br>
<br>
<div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">{$APPTYPE CONSOLE}</div><div class="code_line">uses System.SysUtils, IdHTTP, IdSocks, IdSSLOpenSSL, IdCookieManager, IdCompressorZLib, IdURI;</div><div class="code_line">&nbsp;</div><div class="code_line">const</div><div class="code_line">&nbsp;&nbsp;DefaultUserAgent = &#39;Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/98.0.4758.102 Safari/537.36&#39;;</div><div class="code_line">&nbsp;&nbsp;DefaultReferer = &#39;https://google.com/&#39;;</div><div class="code_line">&nbsp;&nbsp;ProxyURI = &#39;socks5://user:pwd@1.2.3.4:3128:10734&#39;; &nbsp;// здесь, естественно, проставлены нужные данные</div><div class="code_line">&nbsp;&nbsp;ProxySocksVersion = svSocks5;</div><div class="code_line">&nbsp;&nbsp;RequestURL = &#39;https://2ip.ru&#39;;</div><div class="code_line">&nbsp;</div><div class="code_line">var HTTPS: TIdHTTP;</div><div class="code_line">begin</div><div class="code_line">&nbsp;&nbsp;HTTPS := TIdHTTP.Create(nil);</div><div class="code_line">&nbsp;&nbsp;with HTTPS do</div><div class="code_line">&nbsp;&nbsp;begin</div><div class="code_line">&nbsp;&nbsp; &nbsp;IOHandler := TIdSSLIOHandlerSocketOpenSSL.Create(HTTPS);</div><div class="code_line">&nbsp;&nbsp; &nbsp;CookieManager := TIdCookieManager.Create(HTTPS);</div><div class="code_line">&nbsp;&nbsp; &nbsp;Compressor := TIdCompressorZLib.Create(HTTPS);</div><div class="code_line">&nbsp;&nbsp; &nbsp;HandleRedirects := True;</div><div class="code_line">&nbsp;&nbsp; &nbsp;AllowCookies := True;</div><div class="code_line">&nbsp;&nbsp; &nbsp;Request.UserAgent := DefaultUserAgent;</div><div class="code_line">&nbsp;&nbsp; &nbsp;Request.Accept := &#39;*/*&#39;;</div><div class="code_line">&nbsp;&nbsp; &nbsp;Request.AcceptEncoding := &#39;gzip, deflate, br&#39;;</div><div class="code_line">&nbsp;&nbsp; &nbsp;Request.ContentType := &#39;text/plain;charset=UTF-8&#39;;</div><div class="code_line">&nbsp;&nbsp; &nbsp;Request.AcceptLanguage := &#39;ru-RU,ru;q=0.9,en-US;q=0.8,en;q=0.7&#39;;</div><div class="code_line">&nbsp;&nbsp; &nbsp;Request.Connection := &#39;keep-alive&#39;;</div><div class="code_line">&nbsp;&nbsp; &nbsp;Request.Referer := DefaultReferer;</div><div class="code_line">&nbsp;&nbsp; &nbsp;with TIdSSLIOHandlerSocketOpenSSL(IOHandler), TIdURI.Create(ProxyURI) do</div><div class="code_line">&nbsp;&nbsp; &nbsp;begin</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;if not Assigned(TransparentProxy) then</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;TransparentProxy := TIdSocksInfo.Create(HTTPS);</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;begin</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;TransparentProxy.Host := Host;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;TransparentProxy.Port := StrToIntDef(Port, 1080);</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;TransparentProxy.Username := Username;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;TransparentProxy.Password := Password;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;if Username = &#39;&#39; then TIdSocksInfo(TransparentProxy).Authentication := saNoAuthentication</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;else TIdSocksInfo(TransparentProxy).Authentication := saUsernamePassword;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;TIdSocksInfo(TransparentProxy).Version := ProxySocksVersion;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;end;</div><div class="code_line">&nbsp;&nbsp; &nbsp;end;</div><div class="code_line">&nbsp;&nbsp; &nbsp;WriteLn(Get(RequestURL));</div><div class="code_line">&nbsp;&nbsp; &nbsp;Free;</div><div class="code_line">&nbsp;&nbsp;end;</div><div class="code_line">end.</div></ol></div></div></div></div>]]></description>
        <author>Jin X</author>
        <category>Delphi: Сетевое программирование</category>
      </item>
	
      </channel>
      </rss>
	