我有一个脚本,使用urllib2提出一些请求.
我使用技巧suggested elsewhere on Stack Overflow绑定另一个ip到应用程序,我的电脑有两个IP地址(IP A和IP B).
我想切换到使用requests library.有人知道我能如何实现与该库相同的功能?
解决方法
查看请求模块,它看起来像使用httplib发送http请求. httplib使用socket.create_connection()连接到www主机.
知道和遵循你提供的链接中的猴子补丁方法:
import socket
real_create_conn = socket.create_connection
def set_src_addr(*args):
address,timeout = args[0],args[1]
source_address = ('IP_ADDR_TO_BIND_TO',0)
return real_create_conn(address,timeout,source_address)
socket.create_connection = set_src_addr
import requests
r = requests.get('http://www.google.com')
似乎httplib将所有的参数(到create_connection())作为args(vs关键字)传递,因为尝试扩展set_src_addr中的kwargs dict是失败的.我相信以上是你想要的,但是我没有一台双机器来测试.