Python 3.51请求导致代理错误

时间:2016-06-17 19:09:53

标签: python proxy python-requests

我尝试使用Python(3.51)请求使用Informatica Cloud REST API(请求包版本为2.10.0):

import requests

username='myuser'
password='mypassword'

genheaders = {
    'Content-Type': 'application/json',
}

data = '{"@type":"login","username":"' + username + '","password":"' + password +'"}'
response = requests.post('https://app.informaticaondemand.com/ma/api/v2/user/login', headers=genheaders, data=data)

在我的本地机器上,一切都很出色。但是,在我的TEST服务器上,我收到以下错误:

HTTPSConnectionPool(host =' app.informaticaondemand.com',port = 443):使用url:/ ma / api / v2 / user / login超出了最大重试次数(由ProxyError引起('无法连接到代理。',NewConnectionError(':无法建立新连接:[WinError 10060]连接尝试失败,因为连接方在一段时间后未正确响应,或建立的连接失败因为连接的主机未能响应',)))

令人讨厌的是,curl在服务器机器上工作正常:

curl -H "Content -Type: application/json" -X POST --data @Login.txt   https://app.informaticaondemand.com/ma/api/v2/user/login -k

login.txt具有:

{" @ type":" login"," username":" myuser"," password": "输入mypassword"}

如果我不使用-k开关,我会得到:

卷曲:(60)SSL证书问题,验证CA证书是否正常。详细信息:错误:14090086:SSLroutines:SSL3_GET_SERVER_CERTIFICATE:证书验证失败 更多详情:http://curl.haxx.se/docs/sslcerts.html

使用-k开关一切都很好。

我在尝试执行Python.exe之前尝试通过环境变量设置代理:

set HTTP_PROXY=10.123.123.10:8080
set HTTPS_PROXY=10.123.123.10:8080

但结果是一样的。

关于下一步尝试的任何想法?

1 个答案:

答案 0 :(得分:1)

也许尝试以下方法:

import requests

proxies = {
  'http': 'http://10.123.123.10:8080',
  'https': '10.123.123.10:8080',
}

response = requests.post('https://app.informaticaondemand.com/ma/api/v2/user/login', headers=genheaders, data=data, proxies=proxies)

链接到请求代理文档: http://docs.python-requests.org/en/master/user/advanced/#proxies