应为 <class 'dict'> 类型的可迭代数据指定 Content-Length; [英] Content-Length should be specified for iterable data of type <class 'dict'>
本文介绍了应为 <class 'dict'> 类型的可迭代数据指定 Content-Length;的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
import urllib.request
url = 'site'
headers = {'Authorization' : 'Basic emVkMHg6WWJyYm5mMDA='}
req = urllib.request.Request(url, headers)
response = urllib.request.urlopen(req).getcode()
我想在远程服务器上编写多线程授权,但我看到了:
I wanted to write multi-threaded authorization on a remote server, but I see this:
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 interface
During 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='}
推荐答案
您的问题:
class Request:
def __init__(self, url, data=None, headers={},
origin_req_host=None, unverifiable=False,
method=None):
你应该这样做
req = urllib.request.Request(url, headers = headers)
这篇关于应为 <class 'dict'> 类型的可迭代数据指定 Content-Length;的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文