我正在尝试创建一个非常基本的应用程序,该应用程序将能够连接到托管我的大学作业,结果等的Web服务器,并在有任何新内容时通知我。目前我正在尝试获取请求模块的挂起,但我无法登录,因为服务器使用this类型的身份验证,它给了我401未经授权的错误。
我尝试搜索如何使用套接字尝试对Web服务器进行身份验证,但没有运气。你能帮我找一下怎么做吗?
编辑:我正在使用python 3.4
答案 0 :(得分:2)
在检查该网址的响应中的标头后,我认为服务器正在尝试使用NTLM authentication。
尝试安装requests-ntlm
(例如使用pip install requests_ntlm
)然后执行此操作:
import requests
from requests_ntlm import HttpNtlmAuth
requests.get('http://moodle.mcast.edu.mt:8085/',
auth=HttpNtlmAuth('domain\\username', 'password'))
答案 1 :(得分:0)
他们可能无法提供用于授权请求的编程API。如果是这种情况,您可以尝试使用selenium手动打开浏览器并为您填写详细信息。虽然我自己还没有使用它,但Selenium显然已经处理了警示框。
答案 2 :(得分:0)
您需要在套接字请求标头中附加一个简单的身份验证标头。
实施例
import base64
mySocket.send('GET / HTTP/1.1\r\nAuthorization: Basic %s\r\n\r\n' % base64.b64encode('user:pass'))
Python 3x;
import base64
template = 'GET / HTTP/1.1\r\nAuthorization: Basic %s\r\n\r\n'
mySocket.send(bytes(template % base64.b64encode(bytes('user:pass', 'UTF-8')), 'UTF-8'))