Last active
April 16, 2024 11:44
-
-
Save niradler/4e1eab3c5741c55620c033807e3f2212 to your computer and use it in GitHub Desktop.
how to validate axios is compatible with my proxy
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import { HttpsProxyAgent } from "https-proxy-agent"; | |
import * as https from "https"; | |
const { CAS_HTTPS_PROXY } = process.env; | |
const agent = new HttpsProxyAgent(CAS_HTTPS_PROXY); | |
const headers = { | |
"User-Agent": "axios/1.6.8", | |
"Accept-Encoding": "gzip, compress, deflate, br", | |
Accept: "application/json, text/plain, */*", | |
}; | |
https.get("https://www.google.com", { agent, headers }, (res) => { | |
console.log("headers test", res.statusCode); | |
}); | |
for (let header of Object.keys(headers)) { | |
const testHeader = { | |
[header]: headers[header], | |
}; | |
console.log(testHeader); | |
https.get("https://www.google.com", { agent, headers: testHeader }, (res) => { | |
console.log("single header", header, res.statusCode); | |
}); | |
} | |
https.get("https://www.google.com", { agent }, (res) => { | |
console.log("no headers test", res.statusCode); | |
}); |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import { HttpsProxyAgent } from "https-proxy-agent"; | |
import axios from "axios"; | |
const { CAS_HTTPS_PROXY } = process.env; | |
const agent = new HttpsProxyAgent(CAS_HTTPS_PROXY); | |
const api = axios.create({ | |
httpsAgent: agent, | |
// remove hedaers | |
// headers:{ | |
// "User-Agent": null, | |
// "Accept-Encoding": null, | |
// Accept: null | |
// } | |
}); | |
api | |
.get("https://google.com") | |
.then((r) => { | |
console.log(r.status); | |
}) | |
.catch((e) => { | |
console.error(e); | |
}); |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import requests | |
import os | |
session = requests.Session() | |
proxy_url = os.environ.get("CAS_HTTPS_PROXY") | |
https_proxy = os.environ.get("HTTPS_PROXY") | |
if proxy_url: | |
session.proxies = {"https": proxy_url} | |
if proxy_url or https_proxy: | |
print("using proxy") | |
res = session.get("https://www.google.com") | |
print(res.status_code) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import axios from "axios"; | |
import https from "https"; | |
import URL from "url"; | |
import fs from "fs"; | |
const { CAS_HTTPS_PROXY, CAS_HTTPS_CA } = process.env; | |
const url = URL.parse(CAS_HTTPS_PROXY); | |
const api = axios.create({ | |
httpsAgent: new https.Agent({ | |
ca: fs.readFileSync(CAS_HTTPS_CA), | |
}), | |
proxy: { | |
host: url.hostname, | |
port: parseInt(url.port, 10), | |
protocol: url.protocol, | |
}, | |
}); | |
api | |
.get("https://google.com") | |
.then((r) => { | |
console.log(r.status); | |
}) | |
.catch((e) => { | |
console.error(e); | |
}); |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
for passthrough proxy without ssl termination (passthrough-proxy.mjs)
How to run:
mkdir proxy-test cd proxy-test npm init -y npm i axios https-proxy-agent
Now create a file with the content above passthrough-proxy.mjs and run it with proxy details.
Example:
CAS_HTTPS_PROXY=http://localhost:8080 node proxy-test.mjs