请求,无法分配请求的地址,出港口?

Gar*_*n S 6 python python-requests

requests.exceptions.ConnectionError: ('Connection aborted.', error(99, 'Cannot assign requested address'))
Run Code Online (Sandbox Code Playgroud)

当使用python请求库运行多个进程并将post函数调用到返回非常快(<10ms)的API时,我收到此错误.

拨打正在运行的进程数会产生延迟效果,但只有拨入1进程才能解决问题.这不是一个解决方案,但确实表明有限的资源是罪魁祸首.

Gar*_*n S 13

我解决问题的方法是使用requests.Session我将在给定进程中为每个调用重用相同连接/会话的类.

举例:

import requests
for line in file:
  requests.get('http://example.com/api?key={key}'.format(key=line['key']))
Run Code Online (Sandbox Code Playgroud)

import requests
with requests.Session() as session:
  for line in file:
    session.get('http://example.com/api?key={key}'.format(key=line['key']))
Run Code Online (Sandbox Code Playgroud)

这些问题有一些相关的建议:

重复POST请求导致错误"socket.error:(99,'无法分配请求的地址')" Python urllib2:无法分配请求的地址