POST请求适用于Insomnia/Postman,但不适用于python请求



我正在努力对API进行逆向工程,我已经成功地在Insomnia和Postman中获得了200个响应。当我使用Insomnia或Post man生成的代码并添加我的公司代理和.pem证书时,我会收到一个HTML响应,基本上是这样的:

主机不可解析主机无法解析。

DNS无法解析请求的主机。这不是代理问题请从移动设备或个人电脑,查看您是否在公司外遇到问题网络

规则:SSL隧道:绕过站点(处理CONNECT调用(

这是我的python代码:

PROXY_ADDRESS = "proxy.company.com"
PROXY_PORT = "8080"
PROXY_USERNAME = "************"
PROXY_PASSWORD = "************"
import requests
proxy = {
"http": f"http://{PROXY_USERNAME}:{PROXY_PASSWORD}@{PROXY_ADDRESS}:{PROXY_PORT}",
"https": f"http://{PROXY_USERNAME}:{PROXY_PASSWORD}@{PROXY_ADDRESS}:{PROXY_PORT}"
}
url = {CORRECT URL GENORATED BY INSOMNIA}
payload = {CORRECT PAYLOAD GENORATED BY INSOMNIA}
headers = {
{CORRECT HEADERS GENORATED BY INSOMNIA (includes user agent and cookie)}
}
r = requests.request("POST", url, data=payload, headers=headers, proxies=proxy, verify='COMPANYRootCA.pem')
# Used to see the html that was returning (it should just return JSON like it does in insomnia or post man)
f = open("home.html", "a")
f.write(r.text)
f.close()
print(r.json) # Outputs: <bound method Response.json of <Response [502]>>

同样,让我感到困惑的是,它在Insomnia或Postman中运行良好,我得到的JSON响应没有问题。我知道代理正在工作,因为如果我执行requests.get('https://www.google.com', proxies=proxy, verify='COMPANYRootCA.pem'),它将返回谷歌主页的有效HTML响应

请求中似乎包含了一些服务器未接受的信息。我使用了urlib3并解决了我的问题

最新更新