使用Python 2.7

时间:2015-10-22 15:26:18

标签: python authentication get

我试图用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()

1 个答案:

答案 0 :(得分:1)

他们正在使用 get_string()从不实际发送身份验证标头。





而不是摆弄 urllib2 ,您可能想要尝试 requests 库而不是::




 导入请求
 requests.get('http :// someserver / update',auth =('username','password'))
  




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