gpt4 book ai didi

python - urllib2/requests 和 HTTP 相对路径

转载 作者:太空宇宙 更新时间:2023-11-03 12:28:24 24 4
gpt4 key购买 nike

如何强制 urllib2/requests 模块使用相对路径而不是完整/绝对 URL?

当我使用 urllib2/requests 发送请求时,我在我的代理中看到它解析为:

GET https://xxxx/path/to/something HTTP/1.1

不幸的是,我发送它的服务器无法理解该请求并给我一个奇怪的 302。我知道它在 RFC 中,但它不起作用,我正在尝试用 python 代码修复它。我无权访问该服务器。

相对路径,效果很好

GET /path/to/something HTTP/1.1
Host: xxxx

那么如何强制 requests/urllib2 不使用绝对路径呢?并使用简单的相对路径?

最佳答案

以下代码可能适合您的情况:

from urlparse import urljoin
import requests

class RelativeSession(requests.Session):
def __init__(self, base_url):
super(RelativeSession, self).__init__()
self.__base_url = base_url

def request(self, method, url, **kwargs):
url = urljoin(self.__base_url, url)
return super(RelativeSession, self).request(method, url, **kwargs)

session = RelativeSession('http://server.net')
response = session.get('/rel/url')

关于python - urllib2/requests 和 HTTP 相对路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17045550/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com