我有一个完全正常的curl命令并给我一个HTTP 200.
curl -i -H "Authorization: Basic jadkfhjkafDSKJ12DD=" http://<ip>/LoadTest/rest/authentication-point/authenticate
上述API需要base64
格式的授权,并且必须将详细信息作为标题传递。这是一个GET请求。
当我尝试在Python 2.7中运行相同内容时,我得到Response [403]
。代码如下。
import requests
headers = {'Authorization': 'Basic jadkfhjkafDSKJ12DD='}
authurl = "http://<ip>/LoadTest/rest/authentication-point/authenticate"
r = requests.get(authurl, headers=headers)
print r.status_code
我在这里缺少什么?我应该如何传递授权值,就像我在curl命令中传递一样?我尝试了多种方法,但最终仍然得到了HTTP 403。请指导。
答案 0 :(得分:0)
感谢大家的投入。这是最终的解决方案。我发现有代理停止有效载荷。所以将会话添加到请求中。
import requests
session = requests.Session()
session.trust_env = False
headers = {'Authorization': 'Basic jadkfhjkafDSKJ12DD='}
authurl = "http://<ip>/LoadTest/rest/authentication-point/authenticate"
r = session.get(authurl, headers=headers)
print r.status_code
设置trust_env=False
会忽略以下内容: