0

所以我试图深入研究 Python,因为我想为 Plex 媒体服务器编写一个代理。该代理将使用 HTTP 身份验证访问 MyAnimeList.net API(更多信息在这里)我的用户名和密码有效,但我不知道为什么我仍然从服务器收到 401 错误作为响应。

这是一些代码(我使用的是 python 2.5,因为 plex 是这样说的):)

import urllib2

username = "someUser"
password = "somePass"

url = "http://myanimelist.net/api/anime/search.xml?q=bleach"


password_mgr = urllib2.HTTPPasswordMgrWithDefaultRealm()
top_level_url = "http://myanimelist.net/"
password_mgr.add_password(None, top_level_url, username, password)
handler = urllib2.HTTPBasicAuthHandler(password_mgr)
opener = urllib2.build_opener(urllib2.HTTPHandler, handler)
request = urllib2.Request(url)
print request.get_full_url()
f = urllib2.urlopen(request).read()

print(f)

这就是我得到的回应

> http://myanimelist.net/api/anime/search.xml?q=bleach Traceback (most
> recent call last):   File
> "C:\Users\Daraku\Desktop\MAL.bundle\Contents\Code\__init__.py", line
> 16, in <module>
>     f = urllib2.urlopen(request).read()   File "C:\Python25\lib\urllib2.py", line 121, in urlopen
>     return _opener.open(url, data)   File "C:\Python25\lib\urllib2.py", line 380, in open
>     response = meth(req, response)   File "C:\Python25\lib\urllib2.py", line 491, in http_response
>     'http', request, response, code, msg, hdrs)   File "C:\Python25\lib\urllib2.py", line 418, in error
>     return self._call_chain(*args)   File "C:\Python25\lib\urllib2.py", line 353, in _call_chain
>     result = func(*args)   File "C:\Python25\lib\urllib2.py", line 499, in http_error_default
>     raise HTTPError(req.get_full_url(), code, msg, hdrs, fp) HTTPError: HTTP Error 401: Unauthorized

请记住,这是我第一次在 Python 中编程,我对网络上的许多示例有点困惑,因为他们对 urllib2 做了一些事情,所以我认为它不再存在于 python 3.0 中

有任何想法吗?或者有什么更好的方法来做到这一点?

4

0 回答 0