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

Windows 10下使用cUrl向Solr集合发送JSON数据的问题

解决Windows 10下cUrl向Solr发送JSON的报错问题

你遇到的核心问题是Windows命令提示符(CMD)对引号的处理逻辑和类Unix终端不一样,再加上一个小拼写错误,才导致了报错。咱们一步步拆解解决:

错误原因分析

你第二次用的命令里用了单引号'包裹URL和数据,但Windows CMD并不支持用单引号作为字符串的分隔符——它会把单引号当成内容的一部分。所以curl看到的URL是'http://localhost:8983/solr/sorl_sample/update/json/docs',开头的'被当成了协议的一部分,自然就报了Protocol "'http" not supported的错误。另外你还把集合名solr_sample写成了sorl_sample,这个拼写错误也得修正,不然即使引号对了也会找不到目标集合。

正确的命令写法(CMD环境)

在CMD里,必须用双引号"包裹字符串,而JSON内部的双引号需要用反斜杠\转义,正确命令如下:

curl -X POST -H "Content-Type:application/json" "http://localhost:8983/solr/solr_sample/update/json/docs" --data-binary "{\"id\": \"1\",\"title\":\"Doc 1\"}"

更友好的PowerShell方案

如果你的系统里可以用PowerShell,处理JSON会更方便,不需要转义内部双引号,直接用Here-String来定义JSON内容:

# 定义要发送的JSON文档内容
$docContent = @"
{"id": "1","title":"Doc 1"}
"@

# 发送POST请求到Solr
curl -X POST -H "Content-Type:application/json" "http://localhost:8983/solr/solr_sample/update/json/docs" --data-binary $docContent

额外提示

发送完更新请求后,记得加上commit命令让Solr立即生效:

curl "http://localhost:8983/solr/solr_sample/update?commit=true"

内容的提问来源于stack exchange,提问作者Denis L.

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.20 10:37:25