我试图用python 2.7发送get请求。我尝试访问的服务器具有基本身份验证,我访问的URL只显示我希望我的脚本打印该字符串的字符串。
所以基本上我的代码是向这个服务器发送一个get请求,它保存从服务器收到的字符串,该服务器也有基本的auth。
问题是它打印出登录页面的html页面而不是字符串。
username = 'username'
password = 'password'
server = "http://someserver/update"
def get_auth():
request = urllib2.Request(server)
base64string = base64.encodestring('%s:%s' % (username, password)).replace('\n', '')
request.add_header("Authorization", "Basic %s" % base64string)
result = urllib2.urlopen(request)
# print(result)
def get_string():
f = urllib2.urlopen(server)
print f.read()
def main():
get_auth()
get_string()
if __name__ == '__main__':
main()
答案 0 :(得分:1)
他们正在使用 get_string()
从不实际发送身份验证标头。
而不是摆弄 urllib2 代码>,您可能想要尝试
requests
库而不是::
导入请求
 requests.get('http :// someserver / update',auth =('username','password'))



 参见: http://docs.python-requests.org/en/latest/user/authentication/