Axios: HTTP рдкреНрд░реЙрдХреНрд╕реА рдХреЗ рд╕рд╛рде HTTPS рдХреЗ рд▓рд┐рдП рдЕрдиреБрд░реЛрдз рд╡рд┐рдлрд▓ рд░рд╣рддрд╛ рд╣реИ

рдХреЛ рдирд┐рд░реНрдорд┐рдд 30 рдордИ 2017  ┬╖  52рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: axios/axios

рд╕рд╛рд░рд╛рдВрд╢

HTTP рдкреНрд░реЙрдХреНрд╕реА рдХреЗ рд╕рд╛рде HTTPS рдЕрдиреБрд░реЛрдз рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рд╡рд┐рдлрд▓ рд░рд╣рддрд╛ рд╣реИред

const req = await axios({
  url: 'https://somedomain.com',
  proxy: {
    host: '89.151.146.7',
    port: 6060,
    auth: {
      username: 'myname',
      password: 'mypass',
    },
  },
});

рдХрд╛ рдкрд░рд┐рдгрд╛рдо:

Error: write EPROTO 140736379442112:error:140770FC:SSL routines:SSL23_GET_SERVER_HELLO:unknown protocol:../deps/openssl/openssl/ssl/s23_clnt.c:794

рдЗрд╕ рдЯрд┐рдХрдЯ рдореЗрдВ @chovy рджреНрд╡рд╛рд░рд╛ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рд╕рдорд╕реНрдпрд╛ рдХрд╛ рд╡рд░реНрдгрди рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдЬреЛ рд╕рдорд╛рдкреНрдд рд╣реЛ рдЧрдпрд╛ рдХреНрдпреЛрдВрдХрд┐ рдУрдкреА рдореЗрдВ рдПрдХ рд╣реА рд╕рдорд╕реНрдпрд╛ рдирд╣реАрдВ рдереА: https://github.com/mzabriskie/axios/issues/662

@chovy рдХрд╣рддреЗ рд╣реИрдВ:

рдореЗрд░реЗ рдкрд╛рд╕ рдЕрднреА рднреА рдпрд╣ рд╕рдорд╕реНрдпрд╛ рдПрдХ http рдкреНрд░реЙрдХреНрд╕реА рдХреЗ рд╕рд╛рде рдПрдХ https url рдХреЛ рд╣рд┐рдЯ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рдирд╣реАрдВ рд╣реИред рдореИрдВ рдЗрд╕реЗ рдЕрдиреБрд░реЛрдз рдореЗрдВ рдФрд░ рдЦреЛрд▓ рд╕реЗ рдХрд░реНрд▓ рдореЗрдВ рднреА рдареАрдХ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВред Axios рдХреЗ рд╕рд╛рде рдХреБрдЫ рдХрд╛рдо рдирд╣реАрдВ рдХрд░ рд░рд╣рд╛ рд╣реИред рдореБрдЭреЗ рдПрдХ EPROTO рддреНрд░реБрдЯрд┐ рдорд┐рд▓рддреА рд╣реИред

рд╕рдВрджрд░реНрдн

  • рдЕрдХреНрд╖ рд╕рдВрд╕реНрдХрд░рдг: v0.16.1
  • рдкрд░реНрдпрд╛рд╡рд░рдг: рдиреЛрдб v7.10.0, рдореИрдХ рдУрдПрд╕рдПрдХреНрд╕ рд╕рд┐рдПрд░рд╛

рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА

рд╣рд╛рд▓ рд╣реА рдореЗрдВ рдПрдХ рд╕рдорд╛рди рд╕рдорд╕реНрдпрд╛ рдереА, рдореЗрд░рд╛ рд╕рдорд╛рдзрд╛рди рдПрдХ HTTPS-over-HTTP рд╕реБрд░рдВрдЧ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдерд╛, URL рдореЗрдВ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдкреЛрд░реНрдЯ 443 рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░реЗрдВ рдФрд░ axios рдореЗрдВ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдкреНрд░реЙрдХреНрд╕реА рдкрд╣рдЪрд╛рди рдХреЛ рдЕрдХреНрд╖рдо рдХрд░реЗрдВ:

import axios, { AxiosInstance } from 'axios';
import * as tunnel from 'tunnel';

const tunnel = tunnel.httpsOverHttp({
    proxy: {
        host: 'proxy.mycorp.com',
        port: 8000,
    },
});

const httpClient: AxiosInstance = axios.create({
    baseURL: 'https://some.api.com:443',
    httpsAgent: tunnel,
    proxy: false,
});

рдЗрд╕ рд▓реЗрдЦ рдореЗрдВ рд╕рдорд╛рдзрд╛рди рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЕрдзрд┐рдХред

рдЙрдореНрдореАрдж рд╣реИ рдпреЗ рдорджрдж рдХрд░реЗрдЧрд╛,
рдЬрдирд╡рд░реА

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

рдореБрдЭреЗ рдкреНрд░реЙрдХреНрд╕реА рдкрд░ https рдЕрдиреБрд░реЛрдз рдХреА рдПрдХ рд╣реА рд╕рдорд╕реНрдпрд╛ рд╣реИред рдореИрдВ request.js рдкрд░ рдирд╣реАрдВ рдЬрд╛рдирд╛ рдЪрд╛рд╣рддрд╛ред

return axios({ url: 'https://site.com', proxy: { host: 'proxy.xxxxxx.com', port: 3128 } })
рдирддреАрдЬрд╛:
Error: write EPROTO 139800246822688:error:140770FC:SSL routines:SSL23_GET_SERVER_HELLO:unknown protocol:../deps/openssl/openssl/ssl/s23_clnt.c:794

рдЗрд╕ рд╕реНрдерд┐рддрд┐ рдореЗрдВ request.js рдФрд░ curl рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред

рд╕рдВрджрд░реНрдн

  • рдЕрдХреНрд╖ рд╕рдВрд╕реНрдХрд░рдг: v0.16.1
  • рдкрд░реНрдпрд╛рд╡рд░рдг: рдиреЛрдб v6.9.5, CentOS рд░рд┐рд▓реАрдЬрд╝ 6.8 (рдЕрдВрддрд┐рдо)

рдореИрдВрдиреЗ рдФрд░ рдореЗрд░реЗ рдПрдХ рд╕рд╣рдпреЛрдЧреА рдиреЗ рд╕рдорд╕реНрдпрд╛ рдХреА рдкрд╣рдЪрд╛рди рдХреА, рдПрдХ рдкреАрдЖрд░ рдЬрд▓реНрдж рд╣реА рдЖрдирд╛ рдЪрд╛рд╣рд┐рдП

рдкреАрдЖрд░ рдпрд╣рд╛рдБ рд╣реИ https://github.com/mzabriskie/axios/pull/959

рдпрд╣рд╛рдВ рд╡рд╣реА рд╕рдорд╕реНрдпрд╛ рд╣реИ: http рдкреНрд░реЙрдХреНрд╕реА рдХреЗ рдкреАрдЫреЗ https рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХрд╛ рдЕрдиреБрд░реЛрдз рдХрд░рдирд╛ред

axios.get('https://resources.json', {   
   proxy: {
      host: 'http://my.proxy.com',
      port: 12345
   }
})
   .then(() => {})
   .catch(() => {});

рдирддреАрдЬрд╛:
Error: getaddrinfo ENOTFOUND http://my.proxy.com http://my.proxy.com:12345

рдЗрд╕ рдкрд░ рдЕрдм рддрдХ рдХреЛрдИ рдкреНрд░рдЧрддрд┐ рд╣реБрдИ рд╣реИ?

рд╡рд╣реА рд╕рдорд╕реНрдпрд╛ рд╣реИред

рдХреЛрдИ рдЦрдмрд░ ?

рдореЗрд░реА рд╕рдорд╕реНрдпрд╛ рдкреНрд░реЙрдХреНрд╕реА рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рдирд╣реАрдВ рдереА, рдореБрдЭреЗ https рдбреЛрдореЗрди рдкрд░ GET рдЕрдиреБрд░реЛрдз рднреЗрдЬрдирд╛ рдкрдбрд╝рд╛ рдЬреЛ рдкреНрд░рдорд╛рдгрд┐рдд рдирд╣реАрдВ рдерд╛ред рд▓рд┐рдирдХреНрд╕ рдЯрд░реНрдорд┐рдирд▓ рдХреЗ рдЕрдВрджрд░ curl , рд╕рдорд╛рдзрд╛рди -k рдпрд╛ --insecure рдзреНрд╡рдЬ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдерд╛ред рдореБрдЭреЗ рдПрдХреНрд╕рд┐рдпреЛрд╕ рд╕рдорд╛рдзрд╛рди рдирд╣реАрдВ рдорд┐рд▓рд╛, рд▓реЗрдХрд┐рди request lib рдХреЗ рд╕рд╛рде рдореИрдВрдиреЗ рдЗрд╕реЗ рдРрд╕рд╛ рдХрд┐рдпрд╛; рдЖрдкрдХреЛ рд╡рд┐рдЪрд╛рд░ рджреЗ рд╕рдХрддрд╛ рд╣реИ:

const agentOptions = {
    host: '10.100.0.10',
    port: '443',
    path: '/',
    rejectUnauthorized: false,
  }

const agent = new https.Agent(agentOptions)
request({
      url: 'https://10.100.0.10/myUncertifiedTargetUrl',
      method: 'GET',
      agent,
    }, (err, resp, body) => {
...

рдмреЗрдЭрд┐рдЭрдХ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рддрдм рддрдХ рдХрд░реЗрдВ рдЬрдм рддрдХ рдХрд┐ рд╡реЗ #959 рдорд░реНрдЬ рдирд╣реАрдВ рд╣реЛ рдЬрд╛рддреЗред

рдпрд╣рд╛рдВ рд╡рд╣реА рд╣реИ, рдмреАрдЯреАрдбрдмреНрд▓реНрдпреВ @ рдорд┐рд╕реНрдЯрд░рдореЛ рдХрд╛ рдкреАрдЖрд░ рдареАрдХ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ

@ рдорд┐рд╕реНрдЯрд░рдореЛ рдореИрдВрдиреЗ рдЗрд╕реЗ рд╕рдлрд▓ рдХрд┐рдП рдмрд┐рдирд╛ рд╣реА рдХрд╛рдо рдЫреЛрдбрд╝ рджрд┐рдпрд╛ :(

рдореИрдВ рдЗрд╕ рдкреИрдХреЗрдЬ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВ: https://github.com/Yoctol/messaging-apis/tree/master/packages/messaging-api-messenger

рдФрд░ рдЕрдЧрд░ рдореИрдВ рдЖрдкрдХреЗ рджреНрд╡рд╛рд░рд╛ "рдЕрдХреНрд╖" рдХреЛ рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрд┐рдд рдХрд░рддрд╛ рд╣реВрдВ, рддреЛ рдирд┐рдореНрди рддреНрд░реБрдЯрд┐ рдЧрд╛рдпрдм рд╣реЛ рдЬрд╛рддреА рд╣реИ:
"рддреНрд░реБрдЯрд┐: EPROTO 139800246822688 рд▓рд┐рдЦреЗрдВ: рддреНрд░реБрдЯрд┐: 140770FC : SSL рд░реВрдЯреАрди: SSL23_GET_SERVER_HELLO : рдЕрдЬреНрдЮрд╛рдд рдкреНрд░реЛрдЯреЛрдХреЙрд▓:../deps/openssl/openssl/ssl/s23_clnt.c : 794"

рд▓реЗрдХрд┐рди рдореЗрд░реЗ рдкрд╛рд╕ рдХреБрдЫ рдРрд╕рд╛ рд╣реИ:
"рддреНрд░реБрдЯрд┐: getaddrinfo EAI_AGAIN"

рдореИрдВрдиреЗ рджреЗрдЦрд╛ рд╣реИ рдХрд┐ Messenger рдкреНрд▓рдЧрдЗрди рдЗрд╕ рддрд░рд╣ рдХреЗ рдЕрдиреБрд░реЛрдз рдХрд░рддрд╛ рд╣реИ:
`
рдЪрд▓реЛ рдЧреНрд░рд╛рд╣рдХ = axios.create({...});

рдХреНрд▓рд╛рдЗрдВрдЯ.рдЧреЗрдЯ ('...')
`

рдХреНрдпрд╛ рдЖрдк рдЗрд╕ рддрд░рд╣ рд╕реЗ рд╕рдлрд▓ рд╣реБрдП рдпрд╛ рд╕реАрдзреЗ Axios "рдЕрдиреБрд░реЛрдз" рдлрд╝рдВрдХреНрд╢рди рджреНрд╡рд╛рд░рд╛ рдирд╣реАрдВ?

рдзрдиреНрдпрд╡рд╛рдж!

рд╕рдВрдкрд╛рджрд┐рдд рдХрд░реЗрдВ: рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рд╡рд╛рд▓реЗ рдХрд┐рд╕реА рдЕрдиреНрдп рд╡реНрдпрдХреНрддрд┐:
https://github.com/axios/axios/pull/959#issuecomment -337595602

рдЗрд╕реЗ рдорд░реНрдЬ рдХрд░рдиреЗ рдХрд╛ рдХреЛрдИ рдореМрдХрд╛? рдХреНрдпрд╛ рд╣рдо рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рд╕реЗ рдмрдЪрдиреЗ рдХреЗ рд▓рд┐рдП рдирдП рдЬреЛрдбрд╝реЗ рдЧрдП config.transport рдХрд╛ рд▓рд╛рдн рдЙрдард╛ рд╕рдХрддреЗ рд╣реИрдВ?

рдЕрдк, рдпрд╣рд╛рдБ рдПрдХ рд╣реА рд╕рдорд╕реНрдпрд╛!

рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ, рдпрд╣ рдкреБрд▓ рдЕрдиреБрд░реЛрдз рд╡рд┐рд▓рдп рдирд╣реАрдВ рд╣реБрдЖ рд╣реИ, рд▓реЗрдХрд┐рди рдореИрдВрдиреЗ рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЛ рдареАрдХ рдХрд░ рджрд┐рдпрд╛ рд╣реИ https://github.com/Sitronik/axios

рд╣рд╛рд▓ рд╣реА рдореЗрдВ рдПрдХ рд╕рдорд╛рди рд╕рдорд╕реНрдпрд╛ рдереА, рдореЗрд░рд╛ рд╕рдорд╛рдзрд╛рди рдПрдХ HTTPS-over-HTTP рд╕реБрд░рдВрдЧ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдерд╛, URL рдореЗрдВ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдкреЛрд░реНрдЯ 443 рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░реЗрдВ рдФрд░ axios рдореЗрдВ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдкреНрд░реЙрдХреНрд╕реА рдкрд╣рдЪрд╛рди рдХреЛ рдЕрдХреНрд╖рдо рдХрд░реЗрдВ:

import axios, { AxiosInstance } from 'axios';
import * as tunnel from 'tunnel';

const tunnel = tunnel.httpsOverHttp({
    proxy: {
        host: 'proxy.mycorp.com',
        port: 8000,
    },
});

const httpClient: AxiosInstance = axios.create({
    baseURL: 'https://some.api.com:443',
    httpsAgent: tunnel,
    proxy: false,
});

рдЗрд╕ рд▓реЗрдЦ рдореЗрдВ рд╕рдорд╛рдзрд╛рди рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЕрдзрд┐рдХред

рдЙрдореНрдореАрдж рд╣реИ рдпреЗ рдорджрдж рдХрд░реЗрдЧрд╛,
рдЬрдирд╡рд░реА

@ рдЬрди-рдореЛрд▓рдХ рдореЗрд░рд╛ рдлрд┐рдХреНрд╕ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЖрд╕рд╛рди рд╣реИ:

  1. npm рдЕрдХреНрд╖ рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВ-https-рдкреНрд░реЙрдХреНрд╕реА-рдлрд┐рдХреНрд╕
  2. рдлрд┐рд░
import axios from 'axios-https-proxy-fix'; 

const proxy = {
  host: 'some_ip',
  port: some_port_number,
  auth: {
    username: 'some_login',
    password: 'some_pass'
  }
};

async someMethod() {
  const result = await axios.get('some_https_link', {proxy});
}

@ рдЬрди-рдореЛрд▓рдХ рдХреЗ рд╕рдорд╛рдзрд╛рди рдиреЗ рдореЗрд░реЗ рд▓рд┐рдП рднреА рдХрд╛рдо рдХрд┐рдпрд╛ред рд╣рд╛рд▓рд╛рдВрдХрд┐ рдпреВрдЖрд░рдПрд▓ рдкрд░ рдкреЛрд░реНрдЯ рдирдВрдмрд░ рдХреЛ рдордЬрдмреВрд░ рдХрд░рдирд╛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЕрдЪреНрдЫрд╛ рдирд╣реАрдВ рд╣реЛрдЧрд╛ред

@ рдЬрди-рдореЛрд▓рдХ @ рд╕рд┐рдЯреНрд░реЛрдирд┐рдХ рдореИрдВрдиреЗ рдЖрдкрдХреЗ рд╕рдорд╛рдзрд╛рди рдХреА рдХреЛрд╢рд┐рд╢ рдХреА рд▓реЗрдХрд┐рди рддреНрд░реБрдЯрд┐ рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ: рд╕реЙрдХреЗрдЯ
рдореИрдВ рдЬреЛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ рд╡рд╣ рдпрд╣ рджреЗрдЦрдирд╛ рд╣реИ рдХрд┐ рдЕрдиреБрд░реЛрдз рдЪрд╛рд░реНрд▓реНрд╕ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдХреИрд╕реЗ рдЬрд╛рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдореИрдВ рдЪрд╛рд░реНрд▓реНрд╕ рдЦреЛрд▓рддрд╛ рд╣реВрдВ, рдФрд░ рдореЗрд░реЗ рдХреЛрдб рдореЗрдВ рдкреНрд░реЙрдХреНрд╕реА рдХреЛ {рд╣реЛрд╕реНрдЯ: '127.0.0.1', рдкреЛрд░реНрдЯ: 8888 } рдкрд░ рд╕реЗрдЯ рдХрд░рддрд╛ рд╣реВрдВред рдореБрдЭреЗ рдирд╣реАрдВ рдкрддрд╛ рдХрд┐ рдпрд╣ рдЖрдкрдХреЗ рд╕рдорд╛рдзрд╛рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреБрдХреНрдд рд╣реИ рдпрд╛ рдирд╣реАрдВ

0.19.0 рдореЗрдВ рд╢рд╛рдорд┐рд▓ рд╣реЛрдиреЗ рдХрд╛ рдХреЛрдИ рдореМрдХрд╛?

@astappev рдпрд╣ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЗрд╕реЗ ASAP рдХреЛ рдареАрдХ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдмрд╣реБрдд рд╕рд╛рд░реЗ рд╕рдВрдмрдВрдзрд┐рдд рдореБрджреНрджреЗ рдФрд░ рдкреАрдЖрд░ рд╣реИрдВ рдЬрд┐рдиреНрд╣реЗрдВ рдореБрдЭреЗ рджреВрд░ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдореИрдВ рдЗрд╕реЗ рдЕрдкрдиреЗ 0.19.0 рд░реЛрдбрдореИрдк рдореЗрдВ рдЬреЛрдбрд╝ рджреВрдВрдЧрд╛ред

@emilyemorehouse , рдХреНрдпрд╛ рдЖрдкрдХреЗ рдкрд╛рд╕ рдХреЛрдИ рдЕрдиреБрдорд╛рди рд╣реИ рдХрд┐ рдЗрд╕реЗ рдХрдм рдЬрд╛рд░реА рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛?
рдкреАрдЖрд░ #959 рдЗрд╕ рдореБрджреНрджреЗ рдХреЗ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣рд┐рд╕реНрд╕реЗ рдХреЛ рд╣рд▓ рдХрд░рддрд╛ рд╣реИ, рдЕрдиреНрдп рдореБрджреНрджреЛрдВ рдЬреИрд╕реЗ рдкреНрд░реЙрдХреНрд╕реА рдкреБрдирд░реНрдирд┐рд░реНрджреЗрд╢рди рдФрд░ рдЗрд╕рд▓рд┐рдП рдмрд╛рдж рдореЗрдВ рд╕реБрдзрд╛рд░ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред #959 рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрди рдмрд╣реБрдд рд╕рд░рд▓ рд╣реИрдВ рдФрд░ рдХреБрдЫ рд╣реА рдорд┐рдирдЯреЛрдВ рдореЗрдВ рдкреНрд░рдХрд╛рд╢рд┐рдд рдХрд┐рдП рдЬрд╛ рд╕рдХрддреЗ рд╣реИрдВред

@Sitronik рдЬреЛ рдореЗрд░реЗ рд▓рд┐рдП рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ рдзрдиреНрдпрд╡рд╛рдж

@ jan-molak рдХреЗ рдлрд┐рдХреНрд╕ рдиреЗ рдореЗрд░рд╛ рджрд┐рди рдмрдЪрд╛ рд▓рд┐рдпрд╛ред
рдкреАрдЖрд░ рдХреЛ рдорд░реНрдЬ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП +1ред

рдЗрд╕реЗ рдорд░реНрдЬ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдФрд░ +1 !!

рд╡рд╣реА рдореБрджреНрджрд╛... рдХреГрдкрдпрд╛ рдорд░реНрдЬ рдХрд░реЗрдВ!

рдпрд╣рд╛рдБ рдПрдХ рд╣реА рдореБрджреНрджрд╛

@Sitronik рдЬреЛ рдореЗрд░реЗ рд▓рд┐рдП рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ рдзрдиреНрдпрд╡рд╛рдж - рдХреГрдкрдпрд╛ рд╡рд┐рд▓рдп рдХрд░реЗрдВ!
рд╣рд╛рд▓рд╛рдБрдХрд┐ рдкреНрд░реЙрдХреНрд╕реА рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдХреЛ рдкрд░реНрдпрд╛рд╡рд░рдг рдЪрд░ (http_proxy / https_proxy) рд╕реЗ рдкрдврд╝рд╛ рд╣реБрдЖ рдирд╣реАрдВ рд▓рдЧрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди AxiosRequestConfig рдХреЗ рд╣рд┐рд╕реНрд╕реЗ рдХреЗ рд░реВрдк рдореЗрдВ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рд╣реИред

+1 рдЕрднреА рднреА рдКрдкрд░ рд╡рд░реНрдгрд┐рдд рд╡рд░реНрдХрдЕрд░рд╛рдЙрдВрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реИ рд▓реЗрдХрд┐рди рдЗрд╕ рдХрд╛рдо рдХреЛ рдмреЙрдХреНрд╕ рд╕реЗ рдмрд╛рд╣рд░ рджреЗрдЦрдирд╛ рдкрд╕рдВрдж рдХрд░реЗрдВрдЧреЗред

+1 рдЬрдм рдЖрдк рдЗрд╕реЗ рдареАрдХ рдХрд░рддреЗ рд╣реИрдВ? рд▓реЗрдХрд┐рди рд╣рдореЗрдВ no_proxy рднреА рдЪрд╛рд╣рд┐рдП...

@Sitronik рдХреГрдкрдпрд╛ рдкреАрдЖрд░ рдЬреЛрдбрд╝реЗрдВред рдЖрдкрдХрд╛ рдкреИрдХреЗрдЬ axios-https-proxy-fix рдареАрдХ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред axios.defaults.proxy = {host: ip, port: port}

рдЕрднреА рднреА рдПрдХ рдореБрджреНрджрд╛ рд╣реИ, рдЙрд╕ рдкреИрдХреЗрдЬ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдЧрд╛ рд▓реЗрдХрд┐рди рдЗрд╕рдХреЗ рдХрдИ рдкреАрдЫреЗ рд╣реИрдВ? рдХреНрдпрд╛ рдпрд╣ рдХреЛрдИ рдореБрджреНрджрд╛ рдирд╣реАрдВ рд╣реЛрдЧрд╛ :S

рдЙрд╕ рдкреИрдХреЗрдЬ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВрдЧреЗ рд▓реЗрдХрд┐рди рдЗрд╕рдХреЗ рдХрдИ рдкреАрдЫреЗ рд╣реИрдВ?

рдореЗрд░реЗ рд▓рд┐рдП рднреА рдЙрд╕ рдмрджрд▓рд╛рд╡ рдХреА рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░рддреЗ рд╣реБрдП рдореИрдВ рдиреЛрдб-рдлрд╝реЗрдЪ + httpsProxyAgent + рдмреНрд▓реВрдмрд░реНрдб рдХреЗ рд▓рд┐рдП рдЬрд╛ рд░рд╣рд╛ рд╣реВрдВред рдареАрдХ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред

@Makoehle

рдЕрд░реЗ, рдореИрдВрдиреЗ рдЗрд╕реЗ рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдорд╛рдкреНрдд рдХрд░ рджрд┐рдпрд╛, рдЕрдкрдиреЗ рдЯрд░реНрдорд┐рдирд▓ рдкрд░ http рдФрд░ https рдХреЛ "" рдореЗрдВ рдирд┐рд░реНрдпрд╛рдд рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдВ

export http_proxy="" && export https_proxy=""

рдзрдиреНрдпрд╡рд╛рдж рдореИрдВ env рдЪрд░ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирддрд╛ рд╣реВрдБред рдореИрдВрдиреЗ рд╕рдм рдХреБрдЫ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреАред рдореЗрд░рд╛ рдЕрдиреБрдорд╛рди рд╣реИ рдХрд┐ рдЗрд╕рдХрд╛ рд╕рдВрдмрдВрдз #1207 . рд╕реЗ рд╣реИ

рд╡рд┐рд▓рдп рдХрд╛ рднреА рдЗрдВрддрдЬрд╛рд░ рдпрд╣ рдЗрддрдирд╛ рд▓рдВрдмрд╛ рдХреНрдпреЛрдВ рд╣реИ?

959 рдХреЛ рдорд░реНрдЬ рдХрд░ рджрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ рдФрд░ рдпрд╣ 0.19.0-рдмреАрдЯрд╛.1 . рдореЗрдВ рдЙрдкрд▓рдмреНрдз рд╣реИ

рдореИрдВ рдЗрд╕реЗ 0.19.0-рдмреАрдЯрд╛.1 рдореЗрдВ рд╣рд▓ рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛, рд▓реЗрдХрд┐рди рдореИрдВрдиреЗ рдЗрд╕реЗ рдЗрд╕ рддрд░рд╣ рддрдп рдХрд┐рдпрд╛

// default axios usage
import * as ProxyAgent from "proxy-agent";
const proxyAgent = new ProxyAgent(process.env.HTTPS_PROXY);  // http://127.0.0.1:1080
Axios.defaults.httpsAgent = proxyAgent;
Axios.defaults.proxy = false;

// google api usage
const Sheets = google.sheets({
    version: "v4",
    auth: key,
    httpsAgent: /dev/.test(process.env.NODE_ENV) ? proxyAgent : false,
    proxy: false
});

0.19.0-рдмреАрдЯрд╛.1 рд╕рдорд╕реНрдпрд╛ рдХреЛ рдареАрдХ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП, рдореИрдВ рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рдмрдВрдж рдХрд░ рд░рд╣рд╛ рд╣реВрдВ рдФрд░ рдЕрдЧрд░ рдХрд┐рд╕реА рдХреЛ рдЕрднреА рднреА рд╕рдорд╕реНрдпрд╛ рд╣реИ рддреЛ рдПрдХ рдирдпрд╛ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реНрд╡рддрдВрддреНрд░ рдорд╣рд╕реВрд╕ рдХрд░реЗрдВ

@рдЦрд╛рд▓реЗрджрдЧрд░рдмрд╛рдпрд╛ рдореБрдЭреЗ рдЕрднреА рднреА 0.19.0-рдмреАрдЯрд╛.1 рдХреЗ рд╕рд╛рде рдпрд╣ рд╕рдорд╕реНрдпрд╛ рд╣реЛ рд░рд╣реА рд╣реИ
рдореЗрд░рд╛ рдкреНрд░рд╢реНрди рдпрд╣ рд╣реИ рдХрд┐ рдореЗрд░рд╛ рдкреНрд░реЙрдХреНрд╕реА рдЕрдиреБрд░реЛрдз рдХреИрд╕рд╛ рджрд┐рдЦрдирд╛ рдЪрд╛рд╣рд┐рдП (рдФрд░ isHttps рдзреНрд╡рдЬ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ?)

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ HTTP рдкрд░ HTTPS рдХреЗ рд▓рд┐рдП рдореИрдВ рдЗрд╕ рддрд░рд╣ рдкреНрд░реЙрдХреНрд╕реА рдХреЗ рд▓рд┐рдП http url/port рдХреЛ рд╕рд░рд▓ рд░реВрдк рд╕реЗ рд╕реЗрдЯ рдХрд░ рджреВрдВрдЧрд╛:

axiosRequestOptions.proxy = {
            host: '192.0.01',
            port: '8888',
            // isHttps: true, ?
        }

рдРрд╕рд╛ рдХрд╣рд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИ рдХрд┐ рдЙрдкрд░реНрдпреБрдХреНрдд рдЕрднреА рднреА рд╡рд┐рдлрд▓ рд░рд╣рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдореИрдВ рд╕реЛрдЪ рд░рд╣рд╛ рд╣реВрдВ рдХрд┐ рдпрд╣ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди/рджрд╕реНрддрд╛рд╡реЗрдЬрд╝реАрдХрд░рдг рд╕рдорд╕реНрдпрд╛ рд╣реИ рдЬрд╣рд╛рдВ рдкреНрд░реЙрдХреНрд╕реА рд╕рдВрдкрддреНрддрд┐/рд╡рд╕реНрддреБ рдХреА рдореЗрд░реА рд╕рдВрд░рдЪрдирд╛ рдХрд╛ рдХрд╛рд░рдг рд╣реИред

@necevil
рд╣реЛрд╕реНрдЯ: '192.0.01'

0.19.0-рдмреАрдЯрд╛.1 рдЕрднреА рднреА рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред рдореБрдЭреЗ Request failed with status code 400 ред рдЗрд╕ рдкрд░ рдХрд╛рдлреА рд╕рдордп рдмрд░реНрдмрд╛рдж рдХрд┐рдпрд╛ред рдЕрдиреБрд░реЛрдз рдкреБрд╕реНрддрдХрд╛рд▓рдп рдореЗрдВ рд╕реНрд╡рд┐рдЪ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдФрд░ рдЗрд╕рдиреЗ рдкрд╣рд▓реА рдХреЛрд╢рд┐рд╢ рдореЗрдВ рдПрдХ рдЖрдХрд░реНрд╖рдг рдХреА рддрд░рд╣ рдХрд╛рдо рдХрд┐рдпрд╛ред

рдПрдХ рд╣реА рд╕рдорд╕реНрдпрд╛ рдореЗрдВ рднрд╛рдЧ рдЧрдпрд╛ред

const axios = require('axios-https-proxy-fix')

рдореЗрд░реЗ рд▓рд┐рдП рд╕рдорд╕реНрдпрд╛ рддрдп рдХреАред

0.18.0 рдЕрдкрдбреЗрдЯ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдореЗрд░реЗ рд▓рд┐рдП рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реИред рд╣рд╛рд▓рд╛рдВрдХрд┐ рдореБрдЭреЗ рдЕрдкрдиреЗ рдЙрдкрдпреЛрдЧ рдХреЗ рдорд╛рдорд▓реЗ рдХреЗ рд▓рд┐рдП рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╡рд┐рдХрд▓реНрдк рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдиреЗ рдереЗ:

axios.get('<some_url_on_corporate_intranet>', {
        proxy: false,
        httpsAgent: https.Agent({
            rejectUnauthorized: false // Allows the use of self-signed certificates (not recommended)
    })

рд╕рднреА рд╕рдорд╛рдзрд╛рди рдХреА рдХреЛрд╢рд┐рд╢ рдХреА рдФрд░ рд╕рднреА рдЕрд╕рдлрд▓ рдЖрдзрд╛рд░ axios 0.18 . рдкрд░
рдЕрдВрддрд┐рдо рд╕рдорд╛рдзрд╛рди :
nginx рдореЙрдбреНрдпреВрд▓ ngx_http_proxy_connect_module рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВ
рдлрд┐рд░ рдЕрдиреБрд░реЛрдз -рд╡рд╛рджреЗ рдХреЗ рд╕рд╛рде http рдкреНрд░реЙрдХреНрд╕реА рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ https url рдХрд╛ рдЕрдиреБрд░реЛрдз рдХрд░реЗрдВ

рдпрджрд┐ рдЖрдк рдЕрдиреБрд░реЛрдз рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣реЗ рд╣реИрдВ рддреЛ рдЖрдкрдХреЛ Nginx рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред рдЕрдиреБрд░реЛрдз рд╕рдВрднрд╛рд▓рд╛ рдкреНрд░реЙрдХреНрд╕реА рдареАрдХ рд╣реИред

-
рдПрдВрдереЛрдиреА

рдЬрдирд╡рд░реА 17, 2019, рдкрд░ 8:44 pm рдкрд░, redbearder [email protected] рд▓рд┐рдЦрд╛ рд╣реИ:

рд╕рднреА рд╕рдорд╛рдзрд╛рди рдХреА рдХреЛрд╢рд┐рд╢ рдХреА рдФрд░ рд╕рднреА рдЕрд╕рдлрд▓ рдЖрдзрд╛рд░ axios 0.18 . рдкрд░
рдЕрдВрддрд┐рдо рд╕рдорд╛рдзрд╛рди :
nginx рдореЙрдбреНрдпреВрд▓ ngx_http_proxy_connect_module рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВ
рдлрд┐рд░ рдЕрдиреБрд░реЛрдз-рд╡рд╛рджреЗ рдХреЗ рд╕рд╛рде http рдкреНрд░реЙрдХреНрд╕реА рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ https url рдХрд╛ рдЕрдиреБрд░реЛрдз рдХрд░реЗрдВ

-
рдЖрдк рдЗрд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдХреНрдпреЛрдВрдХрд┐ рдЖрдкрдХрд╛ рдЙрд▓реНрд▓реЗрдЦ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред
рдЗрд╕ рдИрдореЗрд▓ рдХрд╛ рд╕реАрдзреЗ рдЙрддреНрддрд░ рджреЗрдВ, рдЗрд╕реЗ GitHub рдкрд░ рджреЗрдЦреЗрдВ, рдпрд╛ рдереНрд░реЗрдб рдХреЛ рдореНрдпреВрдЯ рдХрд░реЗрдВред

рдпрджрд┐ рдЖрдк рдЕрдиреБрд░реЛрдз рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣реЗ рд╣реИрдВ рддреЛ рдЖрдкрдХреЛ Nginx рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред рдЕрдиреБрд░реЛрдз рд╕рдВрднрд╛рд▓рд╛ рдкреНрд░реЙрдХреНрд╕реА рдареАрдХ рд╣реИред - рдПрдВрдердиреА
тАж
17 рдЬрдирд╡рд░реА 2019 рдХреЛ рд░рд╛рдд 8:44 рдмрдЬреЗ redbearder @ . * > рд▓рд┐рдЦрд╛ рд╣реИ: axios 0.18 рдЕрдВрддрд┐рдо рд╕рдорд╛рдзрд╛рди рдкрд░ рд╕рднреА рд╕рдорд╛рдзрд╛рди рдФрд░ рд╕рднреА рд╡рд┐рдлрд▓ рдЖрдзрд╛рд░ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА: nginx рдореЙрдбреНрдпреВрд▓ ngx_http_proxy_connect_module рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВ, рдлрд┐рд░ рдЕрдиреБрд░реЛрдз-рд╡рд╛рджреЗ рдХреЗ рд╕рд╛рде http рдкреНрд░реЙрдХреНрд╕реА рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ https url рдХрд╛ рдЕрдиреБрд░реЛрдз рдХрд░реЗрдВ - рдЖрдк рдЗрд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдХреНрдпреЛрдВрдХрд┐ рдЖрдкрдХрд╛ рдЙрд▓реНрд▓реЗрдЦ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рдЗрд╕ рдИрдореЗрд▓ рдХрд╛ рд╕реАрдзреЗ рдЙрддреНрддрд░ рджреЗрдВ, рдЗрд╕реЗ GitHub рдкрд░ рджреЗрдЦреЗрдВ, рдпрд╛ рдереНрд░реЗрдб рдХреЛ рдореНрдпреВрдЯ рдХрд░реЗрдВред

рдЬрд╡рд╛рдм рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж
рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд▓реЛрдЧ рдкреНрд░реЙрдХреНрд╕реА рдЧреЗрдЯрд╡реЗ рдХреЗ рд░реВрдк рдореЗрдВ рдПрдХрд▓ рдЖрдИрдкреА рдкрддреЗ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЕрдиреБрд░реЛрдз рднреЗрдЬреЗрдВрдЧреЗ, рдпрд╣реА рдореИрдВ рдХрд░реВрдВрдЧрд╛
рд╣рд╛рд▓рд╛рдВрдХрд┐ рдЕрдиреБрд░реЛрдз-рд╡рд╛рджрд╛ рдПрдХ рддреНрд░реБрдЯрд┐ рдкрдХрдбрд╝реЗрдВ "рдЕрдиреБрд░реЛрдз рддреНрд░реБрдЯрд┐: рддреНрд░реБрдЯрд┐: рд╕реБрд░рдВрдЧ рд╕реЙрдХреЗрдЯ рд╕реНрдерд╛рдкрд┐рдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрд╛, рдХреЛрдб 400"
рдЗрд╕рд▓рд┐рдП рдореБрдЭреЗ рдиреЛрдб рд╕реЗ рд╕рдорд╛рдзрд╛рди рдирд╣реАрдВ рдорд┐рд▓рд╛ рдФрд░ рдлрд┐рд░ рдореИрдВ рдЗрд╕реЗ рдЧреЗрдЯрд╡реЗ рдХреА рдУрд░ рд╕реЗ рдареАрдХ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рддрд╛ рд╣реВрдВ
рдФрд░ рд╕рдорд╛рдзрд╛рди рдКрдкрд░ рдЖрддрд╛ рд╣реИ

2 рд╕рд╛рд▓ рдмрд╛рдж рднреА рдЯреВрдЯрд╛ рд╣реИ!!!

рдЕрдиреБрд░реЛрдз рд╡рд╛рджрд╛ рдХрд╛ рдкреНрд░рдпреЛрдЧ рдХрд░реЗрдВред

рдПрдВрдереЛрдиреА
http://profullstack.com

рдЬреБрд▓рд╛ 18, 2019, рдкрд░ 7:05 AM рдкрд░, Yassien [email protected] рд▓рд┐рдЦрд╛ рд╣реИ:

2 рд╕рд╛рд▓ рдмрд╛рдж рднреА рдЯреВрдЯрд╛ рд╣реИ!!!

-
рдЖрдк рдЗрд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдХреНрдпреЛрдВрдХрд┐ рдЖрдкрдХрд╛ рдЙрд▓реНрд▓реЗрдЦ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред
рдЗрд╕ рдИрдореЗрд▓ рдХрд╛ рд╕реАрдзреЗ рдЙрддреНрддрд░ рджреЗрдВ, рдЗрд╕реЗ GitHub рдкрд░ рджреЗрдЦреЗрдВ, рдпрд╛ рдереНрд░реЗрдб рдХреЛ рдореНрдпреВрдЯ рдХрд░реЗрдВред

рдпрд╣рд╛рдБ рдореИрдВрдиреЗ рдЙрди рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдХреНрдпрд╛ рдХрд┐рдпрд╛ рд╣реИ рдЬреЛ рдЗрд╕ рдкрд░ рдареЛрдХрд░ рдЦрд╛рддреЗ рд╣реИрдВ рдФрд░ рдЕрднреА рднреА axios рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ:

const HttpsProxyAgent = require("https-proxy-agent"),
      axios = require("axios");

const httpsAgent = new HttpsProxyAgent({host: "proxyhost", port: "proxyport", auth: "username:password"})

//use axios as you normally would, but specify httpsAgent in the config
axios = axios.create({httpsAgent});

рдпрд╣ рдЖрдкрдХреЛ рд╕рд░рд▓ рдФрд░ рд╕рд╛рдл-рд╕реБрдерд░реЗ, http рдкреНрд░реЙрдХреНрд╕реА рдкрд░ https рдЕрдиреБрд░реЛрдз рдХрд░рдиреЗ рджреЗрдЧрд╛ред

2 рд╕рд╛рд▓ рдмрд╛рдж рднреА рд╡рд╣реА рд╕рдорд╕реНрдпрд╛ рд╣реИред
рдХреНрдпрд╛ рдХреЛрдИ рдЗрд╕ рдкрд░ рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реИ рдпрд╛ рдХреНрдпрд╛ рд╣рдо рдпреЛрдЧрджрд╛рди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрд╕рдореЗрдВ рд╢рд╛рдорд┐рд▓ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ?

рдмрд╕ рдЦреБрдж рдЗрд╕ рдореБрджреНрджреЗ рдореЗрдВ рднрд╛рдЧ рдЧрдпрд╛ред рдЙрдореНрдореАрдж рд╣реИ рдХрд┐ рдЖрдк рд▓реЛрдЧ рдЗрд╕реЗ рдХрд┐рд╕реА рдмрд┐рдВрджреБ рдкрд░ рдареАрдХ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
proxy-agent рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ czl032405 рдХреЗ рд╕рдорд╛рдзрд╛рди рдиреЗ рдореЗрд░реЗ рд▓рд┐рдП рдХрд╛рдо рдХрд┐рдпрд╛ред

0.19.0 рд░рд┐рд▓реАрдЬ рдХреЗ рдЕрдиреБрд╕рд╛рд░, рдпрд╣ рддрдп рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдЪреВрдВрдХрд┐ рдпрд╣ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдирд╣реАрдВ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдПрдХ рдирдпрд╛ рдореБрджреНрджрд╛ рдЦреЛрд▓рд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП

рдпрд╣ рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдЕрднреА рднреА axios 0.19 рдореЗрдВ рдЯреВрдЯрд╛ рд╣реБрдЖ рд╣реИред
рд╕рдВрд╕реНрдХрд░рдг 0.19.0 рд╕рдВрджреЗрд╢ рдХреЗ рд╕рд╛рде рд╡рд┐рдлрд▓ рд░рд╣рддрд╛ рд╣реИ _"рддреНрд░реБрдЯрд┐: рдкреНрд░реЛрдЯреЛрдХреЙрд▓"http:" рд╕рдорд░реНрдерд┐рдд рдирд╣реАрдВ рд╣реИред рдЕрдкреЗрдХреНрд╖рд┐рдд "https:""_
рд╕рдВрд╕реНрдХрд░рдг 0.19.1 рд╡рд┐рдлрд▓ рд░рд╣рддрд╛ рд╣реИ _"рддреНрд░реБрдЯрд┐: 1000ms рдХрд╛ рд╕рдордпрдмрд╛рд╣реНрдп рдкрд╛рд░ рд╣реЛ рдЧрдпрд╛"_ред рдЯрд╛рдЗрдордЖрдЙрдЯ рдмрдврд╝рд╛рдиреЗ рд╕реЗ рдорджрдж рдирд╣реАрдВ рдорд┐рд▓рддреА рд╣реИред рдкреНрд░реЙрдХреНрд╕реА рд╕рд░реНрд╡рд░ CONNECT рдЕрдиреБрд░реЛрдз рдХреА рдЕрдкреЗрдХреНрд╖рд╛ рдХрд░рддрд╛ рд╣реИ рдЬрдмрдХрд┐ axios GET рдЕрдиреБрд░реЛрдз рднреЗрдЬрддрд╛ рд╣реИред

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

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

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

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

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

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

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