解决 requests 库 URL 编码问题:使用 prepare 方法发送未编码的 URL
在使用requests库进行URL请求时,通常需要对URL进行编码。然而,有些情况下需要发送未编码的URL,如测试防火墙配置。但即使按照requests库官方文档中的方法,发送的URL仍然被编码,这引发了用户LudiusMaximus的问题。
为了解决这个问题,可以使用requests库提供的`prepare`方法来创建一个预处理的请求,然后使用此请求来发送请求。下面是一个示例代码:
```python
import requests
s = requests.Session()
s.proxies = {
"http" : "http://127.0.0.1:8080",
"https" : "http://127.0.0.1:8080",
}
s.verify = False
base_url = 'https://www.example.com/search'
query = '?date_range=2017-01-01|2017-03-01'
req = requests.Request('GET', base_url)
p = req.prepare()
p.url += query
req = p
resp = s.send(req)
print(resp.request.url)
```
在这个代码中,首先创建了一个requests.Request对象,然后使用`prepare`方法创建了一个预处理的请求,并使用这个请求来发送URL请求,从而避免了URL编码的问题。
希望这个简短的总结对您有所帮助。如果您需要更详细的信息或有其他问题,请随时提问。
页:
[1]