python requests.get 方法的奇怪问题
Strange issue with python requests.get method
哎呀大哥,这两个小时我都在挠头呢。最后我决定把它交给 Whosebug 上的强大力量。 ye o python 勇士们,请帮助
这个有效:
requests.get('https://abc.123.xyz.xom/getmethisurl',
auth=('PasswordIsAuthToken', 'khcdhk-dcbdmsb-dcbdsm-aBSDCXKN'),
verify=False)
这不是,每次都收到 401:
defconn.py
import json
import requests
from requests.auth import HTTPBasicAuth
class connect(object):
def __init__(self, url, user, token):
self.url=url
self.user=user
self.token=token
def uget(self, uri):
self.url = self.url + uri
## EDIT 1 : Code added to print out the parameters values and type for debugging
print ("IN:", repr(self.url), repr(self.user), repr(self.token))
print(self.url, type(self.url))
print(self.user, type(self.user))
print(self.token, type(self.token))
res=requests.get(self.url, auth=(self.user, self.token), verify=False)
if res.status_code == 401:
print ("ERORR 401 !!!!")
else:
return res
app.py(这是主脚本)
import defconn
from connexion.resolver import RestyResolver
props = dict(line.strip().split('=') for line in open('env.properties'))
url=props['connect.url']
user=props['connect.username']
token=props['connect.token']
oj=defconn.connect(url,user,token)
oj.uget('/getmethisurl')
这是我的 env.properties :
env.properties
connect.url=https://abc.123.xyz.xom
connect.username=PasswordIsAuthToken
connect.token=khcdhk-dcbdmsb-dcbdsm-aBSDCXKN
输出
非常感谢任何帮助。
编辑 1:添加诊断代码及其输出屏幕截图
谢谢 - A
可能的原因是参数与简单的硬编码示例不匹配。尝试添加一条诊断线,以便您可以隔离问题:
class connect(object):
def __init__(self, url, user, token):
self.url=url
self.user=user
self.token=token
def uget(self, uri):
self.url = self.url + uri
print(repr(self.url), repr(self.user), repr(self.token)) # <== DIAGNOSTIC
res=requests.get(self.url, auth=(self.user, self.token), verify=False)
if res.status_code == 401:
print ("ERORR 401 !!!!")
else:
return res
如评论中所述,self.url = self.url + uri
可能不是您想要的。相反,只需更新一个局部变量。
哎呀大哥,这两个小时我都在挠头呢。最后我决定把它交给 Whosebug 上的强大力量。 ye o python 勇士们,请帮助
这个有效:
requests.get('https://abc.123.xyz.xom/getmethisurl',
auth=('PasswordIsAuthToken', 'khcdhk-dcbdmsb-dcbdsm-aBSDCXKN'),
verify=False)
这不是,每次都收到 401:
defconn.py
import json
import requests
from requests.auth import HTTPBasicAuth
class connect(object):
def __init__(self, url, user, token):
self.url=url
self.user=user
self.token=token
def uget(self, uri):
self.url = self.url + uri
## EDIT 1 : Code added to print out the parameters values and type for debugging
print ("IN:", repr(self.url), repr(self.user), repr(self.token))
print(self.url, type(self.url))
print(self.user, type(self.user))
print(self.token, type(self.token))
res=requests.get(self.url, auth=(self.user, self.token), verify=False)
if res.status_code == 401:
print ("ERORR 401 !!!!")
else:
return res
app.py(这是主脚本)
import defconn
from connexion.resolver import RestyResolver
props = dict(line.strip().split('=') for line in open('env.properties'))
url=props['connect.url']
user=props['connect.username']
token=props['connect.token']
oj=defconn.connect(url,user,token)
oj.uget('/getmethisurl')
这是我的 env.properties :
env.properties
connect.url=https://abc.123.xyz.xom
connect.username=PasswordIsAuthToken
connect.token=khcdhk-dcbdmsb-dcbdsm-aBSDCXKN
输出
非常感谢任何帮助。
编辑 1:添加诊断代码及其输出屏幕截图
谢谢 - A
可能的原因是参数与简单的硬编码示例不匹配。尝试添加一条诊断线,以便您可以隔离问题:
class connect(object):
def __init__(self, url, user, token):
self.url=url
self.user=user
self.token=token
def uget(self, uri):
self.url = self.url + uri
print(repr(self.url), repr(self.user), repr(self.token)) # <== DIAGNOSTIC
res=requests.get(self.url, auth=(self.user, self.token), verify=False)
if res.status_code == 401:
print ("ERORR 401 !!!!")
else:
return res
如评论中所述,self.url = self.url + uri
可能不是您想要的。相反,只需更新一个局部变量。