You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过Python 3获取Solr /admin/metrics接口的JSON响应而非HTML?

解决Python调用Solr接口返回HTML而非JSON的问题

你遇到的问题大概率是请求参数传递错误、请求头未正确指定,或者Solr返回了错误页面(比如权限校验失败、路径不正确)。下面推荐两种可行的方案,既有通用HTTP请求库,也有专门的Solr客户端模块:

一、使用通用HTTP请求库 requests

requests是Python生态中最常用的HTTP请求库,只要正确构造请求,就能拿到JSON响应。核心要确保三点:

  1. 完整的Solr接口URL(不要漏掉Solr的核心路径,比如http://your-solr-host:8983/solr/<core-name>/admin/metrics)
  2. 正确传递请求参数
  3. 指定Accept: application/json请求头,或者确保wt=json参数生效

示例代码:

import requests

solr_url = "http://your-solr-host:8983/solr/<core-name>/admin/metrics"
params = {
    "group": "solr.jvm",
    "prefix": "os",
    "wt": "json"
}
headers = {
    "Accept": "application/json"
}

response = requests.get(solr_url, params=params, headers=headers)
# 检查响应状态码,排除错误情况
if response.status_code == 200:
    json_data = response.json()
    print(json_data)
else:
    # 如果还是返回HTML,打印响应内容排查问题
    print(response.text)

如果仍返回HTML,建议打印响应内容,看是Solr的错误页面(比如404、401)还是参数错误提示,再针对性调整。

二、使用专门的Solr客户端模块 pysolr

pysolr是专为Solr设计的Python客户端,封装了很多Solr API的调用细节,使用更简洁。

首先安装模块:

pip install pysolr

示例代码(调用metrics接口):

import pysolr

# 连接到指定Solr核心
solr = pysolr.Solr("http://your-solr-host:8983/solr/<core-name>", timeout=10)

# 调用admin/metrics接口,传递参数
metrics = solr._send_request("GET", "/admin/metrics", {
    "group": "solr.jvm",
    "prefix": "os",
    "wt": "json"
})

print(metrics)

_send_request方法可以直接调用Solr的管理接口,返回的就是解析后的JSON数据。

额外提示

  • 确认Solr服务正常运行,且接口路径正确(比如是否需要指定核心,或者你的Solr是无核心模式?)
  • 如果Solr开启了认证,需要在请求中加入认证信息(比如requests的auth参数,或者pysolr初始化时传入auth)

内容的提问来源于stack exchange,提问作者Efox

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.26 07:30:05