Ubuntu VPS下Python requests库无法发送请求求助
Python requests请求无返回但curl正常的排查方案
检查代理设置
系统curl可能未使用代理,但Python的requests可能继承了环境变量中的代理配置,可在代码中显式禁用代理:import requests url = "http://139.248.156.245/test.php" response = requests.get(url, timeout=120, proxies={"http": None, "https": None}) print(response.text)对齐请求头
curl与requests默认请求头存在差异,服务器可能拒绝了requests的请求头。先通过curl -v "http://139.248.156.245/test.php"查看curl的请求头,再复制到requests中:import requests url = "http://139.248.156.245/test.php" headers = { "User-Agent": "curl/7.68.0", # 替换为curl实际的User-Agent "Accept": "*/*" } response = requests.get(url, timeout=120, headers=headers) print(response.text)捕获异常排查错误
原代码未处理异常,请求可能抛出错误但未显示。添加异常捕获查看详情:import requests url = "http://139.248.156.245/test.php" try: response = requests.get(url, timeout=120) response.raise_for_status() print(response.text) except Exception as e: print(f"错误详情: {e}")调整SSL/TLS版本
若目标网站SSL配置特殊,requests与curl使用的SSL库版本可能不一致,可指定TLS版本尝试:import requests from requests.adapters import HTTPAdapter from urllib3.poolmanager import PoolManager import ssl class TLSAdapter(HTTPAdapter): def init_poolmanager(self, connections, maxsize, block=False): self.poolmanager = PoolManager( num_pools=connections, maxsize=maxsize, block=block, ssl_version=ssl.PROTOCOL_TLSv1_2 ) url = "http://139.248.156.245/test.php" session = requests.Session() session.mount("http://", TLSAdapter()) session.mount("https://", TLSAdapter()) response = session.get(url, timeout=120) print(response.text)
内容的提问来源于stack exchange,提问作者farshadarbab
相关产品推荐
相关产品推荐

