根据solr文档here,“完整的POST主体被解析为参数并包含在Solr参数中。”这是一个错误的陈述还是我错过了什么?
我有一个扩展RequestHandlerBase的Java类,如下所示:
... Imports ...
public class CustomRequestHandler extends RequestHandlerBase {
@Override
public void init(NamedList args) {
super.init(args);
}
@Override
public void handleRequestBody(SolrQueryRequest req, SolrQueryResponse rsp)
throws Exception {
SolrParams params = req.getParams();
rsp.add("params", params);
}
... Additional Overrides ....
}
在我的solrconfig中,我添加了一个请求处理程序:
<requestHandler name="/test" class="org.apache.solr.handler.ext.CustomRequestHandler"></requestHandler>
然后我使用curl测试了处理程序:
curl -H 'Content-Type: application/json' 'http://localhost:8983/solr/testcore/test?test1=a' --data '{ "test2": "b" }'
我得到的回复包括test1但不包括test2。使用Wireshark,我验证了我的请求是POST并且内容已正确传入。
我试过调整curl选项(使用不同的内容类型标题,发送xml而不是json等),但没有运气。我发现检索正文内容的唯一方法是使用内容流。