我是否需要使用内容流从SolrQueryRequest读取POST正文内容?

时间:2017-09-07 14:35:34

标签: java solr

根据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等),但没有运气。我发现检索正文内容的唯一方法是使用内容流。

0 个答案:

没有答案