Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/python-2.7/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
与HTTPDigestAuth一起使用时,Python 2.7 requests.get会删除查询字符串_Python_Python 2.7_Python Requests - Fatal编程技术网

与HTTPDigestAuth一起使用时,Python 2.7 requests.get会删除查询字符串

与HTTPDigestAuth一起使用时,Python 2.7 requests.get会删除查询字符串,python,python-2.7,python-requests,Python,Python 2.7,Python Requests,打印的url已丢失查询字符串。如果删除auth参数,url将正确地保留url末尾的查询字符串 r = requests.get("http://192.168.28.111:80/is-cgi/com/ctw.cgi?query=limits", auth=HTTPDigestAuth(self.username, self.password)) print(r.url) >>http://192.168.28.111:80/is-cgi/com/ctw.cgi 我尝试使用'par

打印的url已丢失查询字符串。如果删除auth参数,url将正确地保留url末尾的查询字符串

r = requests.get("http://192.168.28.111:80/is-cgi/com/ctw.cgi?query=limits", auth=HTTPDigestAuth(self.username, self.password))
print(r.url)
>>http://192.168.28.111:80/is-cgi/com/ctw.cgi
我尝试使用'params'关键字传递查询,但出现了相同的问题

r = requests.get("http://192.168.28.111:80/is-cgi/com/ctw.cgi?query=limits")
print(r.url)
>>http://192.168.28.111:80/is-cgi/com/ctw.cgi?query=limits
使用基本身份验证生成正确的url

r = requests.get("http://192.168.25.243:80/is-cgi/com/ctw.cgi", params={'query': 'limits'}, auth=HTTPDigestAuth(self.username, self.password))
print(r.url)
>>http://192.168.28.111:80/is-cgi/com/ctw.cgi

有人知道会发生什么吗?似乎应该有一个简单的解决方案,但这表现得非常奇怪

尝试设置
allow\u redirects=False
。我的猜测是,在使用auth的示例中,Web服务器将返回3XX重定向,但当您不传递凭据时,可能会返回4XX重定向。@jordanm看起来是这样的!当我设置allow_redirects=False时,我得到一个HTTP代码302,url看起来是正确的。但是,我仍然无法从端点获取所需的数据。我可以使用浏览器或邮递员获得它,所以我想知道python如何以不同的方式处理它。谢谢你的帮助,我现在离你越来越近了:)试试设置
allow\u redirects=False
。我的猜测是,在使用auth的示例中,Web服务器将返回3XX重定向,但当您不传递凭据时,可能会返回4XX重定向。@jordanm看起来是这样的!当我设置allow_redirects=False时,我得到一个HTTP代码302,url看起来是正确的。但是,我仍然无法从端点获取所需的数据。我可以使用浏览器或邮递员获得它,所以我想知道python如何以不同的方式处理它。谢谢你的帮助,我现在离你越来越近了:)
r = requests.get("http://192.168.28.111:80/is-cgi/com/ctw.cgi?query=limits", auth=HTTPBasicAuth(self.username, self.password))
print(r.url)
>>http://192.168.28.111:80/is-cgi/com/ctw.cgi?query=limits