Python urllib2. URLError: <urlopen 错误 [Errno 10048] 每个套接字地址通常只允许一个使用>

4 投票
1 回答
12931 浏览
提问于 2025-04-16 08:59

我正在连接多个API,并且在执行删除操作时遇到了问题。在进行到第3000个请求时,我收到了一个错误。

大概是这样的:

 def delete_request(self,path):
    opener = urllib2.build_opener(urllib2.HTTPHandler)
    request = urllib2.Request('%s%s'%(self.endpoint,path))
    signature = self._gen_auth('DELETE', path, '')
    request.add_header('X-COMPANY-SIGNATURE-AUTH', signature)
    request.get_method = lambda: 'DELETE'
    resp = opener.open(request)

然后在控制台中:

for i in xrange(300000): 
    con.delete_request('/integration/sitemap/item.xml/media/%d/' % i)

在大约第3000个请求后,它显示:

URLError: urlopen error [Errno 10048]
Only one usage of each socket address (protocol/network address/port)
is normally permitted

1 个回答

9

这个错误是Windows系统本身引起的,具体可以参考这个链接:避免TCP/IP端口耗尽。要解决这个错误,你需要关闭你的连接,因为你没有调用opener.close(),这导致了资源的浪费。

撰写回答