標籤:
import urllib.requesturl = ‘site‘headers = {‘Authorization‘ : ‘Basic emVkMHg6WWJyYm5mMDA=‘}req = urllib.request.Request(url, headers)response = urllib.request.urlopen(req).getcode()
出現錯誤:
Traceback (most recent call last): File "C:\Program Files\Python33\lib\urllib\request.py", line 1186, in do_request_ mv = memoryview(data)TypeError: memoryview: dict object does not have the buffer interfaceDuring handling of the above exception, another exception occurred:Traceback (most recent call last): File "C:/Users/zed/Desktop/sddf.py", line 6, in <module> response = urllib.request.urlopen(req).getcode() File "C:\Program Files\Python33\lib\urllib\request.py", line 156, in urlopen return opener.open(url, data, timeout) File "C:\Program Files\Python33\lib\urllib\request.py", line 467, in open req = meth(req) File "C:\Program Files\Python33\lib\urllib\request.py", line 1191, in do_request_ data))ValueError: Content-Length should be specified for iterable data of type <class ‘dict‘> {‘Authorization‘: ‘Basic emVkMHg6WWJyyM5mMDA=‘}
解決辦法:
先看Requset定義:
class Request: def __init__(self, url, data=None, headers={}, origin_req_host=None, unverifiable=False, method=None):
所以,應該改為
req = urllib.request.Request(url, headers = headers)
urllib TypeError: memoryview: dict object does not have the buffer interface