我有一个脚本通过urllib2
发出一些请求。
我使用技巧suggested elsewhere on Stack Overflow将另一个ip绑定到应用程序,我的计算机有两个IP地址(IP A和IP B)。
我想切换到使用requests
library。有谁知道如何使用该库实现相同的功能?
答案 0 :(得分:15)
查看requests
模块,看起来它使用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关键字),因为尝试扩展kwargs
内的set_src_addr
dict失败了。我相信以上是你想要的,但我没有双待机器来测试。