当我尝试通过此代码连接到gmail时:
import socks
import imaplib
import socket
import socks
s = socks.socksocket()
s.setproxy(socks.PROXY_TYPE_HTTP, '192.168.208.51', 3128)
s.connect(('imap.gmail.com', 993))
我收到错误消息:
Traceback (most recent call last):
File "<pyshell#18>", line 1, in <module>
s.connect(('imap.gmail.com', 993))
File "C:\Python34\lib\site-packages\socks.py", line 406, in connect
self.__negotiatehttp(destpair[0],destpair[1])
File "C:\Python34\lib\site-packages\socks.py", line 357, in __negotiatehttp
while resp.find("\r\n\r\n")==-1:
TypeError: Type str doesn't support the buffer API
有什么想法吗?我在使用代理的计算机上,因此使用SocksiPy连接到imap.gmail.com
答案 0 :(得分:0)
你的代码没有错;您正在使用尚未移植到Python 3的SocksiPy版本。您应该升级到版本1.02。或者你应该切换回Python 2。
<强>阐释:强>
这是Python 3.与Python 2不同,bytes
和str
对象不可互换。如果你尝试做这样的事情:
>>> b'abc'.find('a')
您将收到您所看到的错误。实际上,“缓冲API”是由bytes
个对象实现的。