Ccxt: рдкрд╣рд▓реЗ рдЕрдиреБрд░реЛрдз рдХреЗ рдмрд╛рдж aiohttp_proxy рдХреЛ рдмрджрд▓рдиреЗ рд╕реЗ рдХреЛрдИ рдкреНрд░рднрд╛рд╡ рдирд╣реАрдВ рдкрдбрд╝рддрд╛ рд╣реИ

рдХреЛ рдирд┐рд░реНрдорд┐рдд 27 рдлрд╝рд░ре░ 2018  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: ccxt/ccxt

  • рдУрдПрд╕: рд╡рд┐рдВрдбреЛрдЬрд╝
  • рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рднрд╛рд╖рд╛ рд╕рдВрд╕реНрдХрд░рдг: рдкрд╛рдпрдерди async
  • рд╕реАрд╕реАрдПрдХреНрд╕рдЯреА рд╕рдВрд╕реНрдХрд░рдг: 1201

рдкрд╣рд▓реЗ рдЕрдиреБрд░реЛрдз рдХреЗ рдмрд╛рдж aiohttp_proxy рдХреЛ рдмрджрд▓рдиреЗ рд╕реЗ рдХреЛрдИ рдкреНрд░рднрд╛рд╡ рдирд╣реАрдВ рдкрдбрд╝рддрд╛ рд╣реИред рдпрджрд┐ рдЗрд╕реЗ рдкрд╣рд▓реЗ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП) await e.load_markets() рдмрд╛рдж рд╕реЗрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рддреЛ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рдпрджрд┐ рдЗрд╕реЗ рдкрд╣рд▓реЗ await e.load_markets() рд╕реЗ рдкрд╣рд▓реЗ рд╕реЗрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рддреЛ рдпрд╣ рдЙрд╕ рдкреНрд░реЙрдХреНрд╕реА рд╕рд░реНрд╡рд░ рдкрд░ рдЬрд╛рддрд╛ рд░рд╣реЗрдЧрд╛, рднрд▓реЗ рд╣реА рдЖрдк aiohttp_proxy рдХреЛ рдмрд╛рдж рдореЗрдВ рдХрд┐рд╕реА рдЕрдиреНрдп рдкреНрд░реЙрдХреНрд╕реА рд╕рд░реНрд╡рд░ рдореЗрдВ рдмрджрд▓ рджреЗрдВред

рдЗрд╕реЗ рдареАрдХ рдХрд░рдиреЗ рдХрд╛ рд╕рдмрд╕реЗ рдЖрд╕рд╛рди рддрд░реАрдХрд╛ рдХреНрдпрд╛ рд╣реИ? close() рдХреЙрд▓ рдХрд░реЗрдВ рдФрд░ рд╕рддреНрд░ рдЪрд░ рдХреЛ рдЕрдзрд┐рд▓реЗрдЦрд┐рдд рдХрд░реЗрдВ? рдФрд░/рдпрд╛ рдпрд╣ рдХреБрдЫ рдРрд╕рд╛ рд╣реИ рдЬрд┐рд╕реЗ ccxt рдореЗрдВ рдареАрдХ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд╕рддреНрд░ рдХреЛ рдкреБрдирдГ рдЖрд░рдВрдн рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреЛрдИ рдЕрдиреНрдп рд╡рд┐рдзрд┐ рдЬреЛрдбрд╝реЗрдВ)

import ccxt.async as ccxt
import asyncio
import test2_config as config


async def main():
    exchange = 'gatecoin'
    e = getattr(ccxt, exchange)()
    e.verbose = True
    e.apiKey = config.exchange_keys[exchange]['key']
    e.secret = config.exchange_keys[exchange]['secret']
    e.aiohttp_proxy = 'http://' + config.check_proxylist[0]['host'] + ':' + config.check_proxylist[0]['port']
    await e.load_markets(reload=True)
    e.aiohttp_proxy = 'http://' + config.transaction_proxy['host'] + ':' + config.transaction_proxy['port']
    await e.load_markets(reload=True)
    await e.close()


if __name__ == "__main__":
    loop = asyncio.get_event_loop()
    loop.run_until_complete(main())

рд╡рд╛рдЪрд╛рд▓ рдЙрддреНрдкрд╛рджрди

Request: GET https://api.gatecoin.com/Public/LiveTickers {'User-Agent': 'python-requests/2.18.4', 'Accept-Encoding': 'gzip, deflate'} None

Response: GET https://api.gatecoin.com/Public/LiveTickers 200 <CIMultiDictProxy('Date': 'Tue, 27 Feb 2018 18:15:41 GMT', 'Content-Type': 'application/json', 'Transfer-Encoding': 'chunked', 'Connection': 'keep-alive', 'Set-Cookie': '__cfduid=<snip>; expires=Wed, 27-Feb-19 18:15:40 GMT; path=/; domain=.gatecoin.com; HttpOnly', 'Cache-Control': 'private', 'Content-Encoding': 'gzip', 'Strict-Transport-Security': 'max-age=15552000; includeSubDomains; preload', 'X-Content-Type-Options': 'nosniff', 'Expect-CT': 'max-age=604800, report-uri="https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct"', 'Server': 'cloudflare', 'CF-RAY': '<snip>-DUB')> <snip>

Request: GET https://api.gatecoin.com/Public/LiveTickers {'User-Agent': 'python-requests/2.18.4', 'Accept-Encoding': 'gzip, deflate'} None

Response: GET https://api.gatecoin.com/Public/LiveTickers 200 <CIMultiDictProxy('Date': 'Tue, 27 Feb 2018 18:15:41 GMT', 'Content-Type': 'application/json', 'Transfer-Encoding': 'chunked', 'Connection': 'keep-alive', 'Cache-Control': 'private', 'Content-Encoding': 'gzip', 'Strict-Transport-Security': 'max-age=15552000; includeSubDomains; preload', 'X-Content-Type-Options': 'nosniff', 'Expect-CT': 'max-age=604800, report-uri="https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct"', 'Server': 'cloudflare', 'CF-RAY': '<snip>-DUB')> <snip>

рд╕рднреА 3 рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдкреНрд░реЙрдХреНрд╕реА рдкреНрд░рддрд┐ рдЯреАрд╕реАрдкреА рдХрдиреЗрдХреНрд╢рди рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред рдпрджрд┐ рдпрд╣ рдмрдВрдж рдирд╣реАрдВ рд╣реИ, рддреЛ рдкрд┐рдЫрд▓реЗ рдкрд░рджреЗ рдХреЗ рдкреАрдЫреЗ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИред рдЕрдЧрд░ рдореИрдВ рдЬреЛрдбрд╝реВрдВ
headers['Connection'] = 'close' рдмреЗрд╕ рдПрдХреНрд╕рдЪреЗрдВрдЬ рдХреНрд▓рд╛рд╕ (async рдХреЗ рд▓рд┐рдП) рдореЗрдВ рд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рдкреНрд░реЙрдХреНрд╕реА рд░реЛрдЯреЗрд╢рди рдЕрдкреЗрдХреНрд╖рд┐рдд рд░реВрдк рд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдкрд╣рд▓реЗ рдЕрдиреБрд░реЛрдз рдХреЗ рдмрд╛рдж рдЯреАрд╕реАрдкреА рдХрдиреЗрдХреНрд╢рди рдмрдВрдж рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред рдЬрдм рд╡рд╣ рд╣реЗрдбрд░ рдирд╣реАрдВ рдЬреЛрдбрд╝рд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдкрд┐рдЫрд▓реЗ рдкреНрд░реЙрдХреНрд╕реА рдХреЗ рд▓рд┐рдП рдЯреАрд╕реАрдкреА рдХрдиреЗрдХреНрд╢рди рдЦреБрд▓рд╛ рд░рд╣рддрд╛ рд╣реИ рдФрд░ рдПрдЖрдИрдУрдПрдЪрдЯреАрдЯреАрдкреА рдирдП aiohttp_proxy рдХреА рдкрд░рд╡рд╛рд╣ рдХрд┐рдП рдмрд┐рдирд╛ рдЙрд╕рдХрд╛ рдкреБрди: рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред

рддреЛ рд╡реНрдпрд╡рд╣рд╛рд░ рдкреНрд░реЙрдХреНрд╕реА рдФрд░ рдПрдХреНрд╕рдЪреЗрдВрдЬ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рднрд┐рдиреНрди рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рдпрд╣ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИ рдХрд┐ рд╡реЗ рд░рдЦрд░рдЦрд╛рд╡ рдХреЛ рдХреИрд╕реЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рд┐рдд рдХрд░рддреЗ рд╣реИрдВред

рд╣рд╛рд▓рд╛рдВрдХрд┐ рдореБрдЭреЗ headers['Connection'] = 'close' рдЗрдВрдЬреЗрдХреНрдЯ рдХрд░рдиреЗ рдХрд╛ 'рд╕рд╛рдл' рддрд░реАрдХрд╛ рдирд╣реАрдВ рдорд┐рд▓ рд░рд╣рд╛ рд╣реИред

рдореБрдЭреЗ рд╣реЗрдбрд░ ['рдХрдиреЗрдХреНрд╢рди'] = 'рдХрд░реАрдм' рдЗрдВрдЬреЗрдХреНрдЯ рдХрд░рдиреЗ рдХрд╛ 'рд╕рд╛рдл' рддрд░реАрдХрд╛ рдирд╣реАрдВ рдорд┐рд▓ рд░рд╣рд╛ рд╣реИред

рдХреЙрд▓ рдЬрд╛рд░реА рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдпрд╛ рдПрдХреНрд╕рдЪреЗрдВрдЬ рдЗрдВрд╕реНрдЯреЗрдВрд╕ рдмрдирд╛рдиреЗ рдХреЗ рдареАрдХ рдмрд╛рдж exchange.headers = {'Connection': 'close'} рдЬреЛрдбрд╝реЗрдВ:


# option 1
exchange = ccxt.gatecoin({'headers': {'Connection': 'close'}})

# option 2
exchange = ccxt.gatecoin()
exchange.headers = {'Connection': 'close'}

рд╣рдореЗрдВ рдмрддрд╛рдПрдВ рдХрд┐ рдХреНрдпрд╛ рдпрд╣ рдорджрдж рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред рдзрдиреНрдпрд╡рд╛рдж!

рдХрд╛рдо рдХрд░рдиреЗ рд▓рдЧрддрд╛ рд╣реИ, thx!

рдХреНрдпрд╛ рдпрд╣ рдкреГрд╖реНрда рдЙрдкрдпреЛрдЧреА рдерд╛?
0 / 5 - 0 рд░реЗрдЯрд┐рдВрдЧреНрд╕

рд╕рдВрдмрдВрдзрд┐рдд рдореБрджреНрджреЛрдВ

ljianyih picture ljianyih  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

jjhesk picture jjhesk  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

nashse picture nashse  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

slideup-benni picture slideup-benni  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

jackyxie picture jackyxie  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ