使用Solr的3.5和4.2的HttpClient问题进行查询到Solr通过的HttpClient(

2019-10-31 21:45发布

我想查询使用的HttpClient我的本地Solr的服务器,我想不通为什么参数没有被添加到GET调用。

我这样做的代码是:

HttpRequestBase request = new HttpGet("http://localhost:8080/solr/select");

HttpParams params = new BasicHttpParams();
params.setParameter("q", query);
params.setParameter("start", String.valueOf(start));
params.setParameter("rows", String.valueOf(rows));

request.setParams(params);

HttpClient httpClient = new DefaultHttpClient();
HttpResponse response = httpClient.execute(request);

HttpEntity entity = response.getEntity();
InputStream is = entity.getContent();

return stringToStreamConversion(is); //500 error, NullPointerException, response is empty

我试图在看到我会得到,并试图找出其中的问题是,希望返回几件事情。 我终于意识到,我只是得到回http://localhost:8080/solr/select当我回到

return request.getURI().toURL().toString();

我想不通,为什么没有得到补充的参数。 如果我做

return request.getQuery();

我什么也没有回来...任何想法? 我在这里先向您的帮助表示感谢!

Answer 1:

从我所看到的你是不是能够将您的赞歌与请求相关联。

因此,而不是创建一个新的HttpParams对象,并将其与关联的请求,你可以试试下面的方法呢?

httpCclient.getParams()的setParameter( “Q”,查询“); ....



Answer 2:

更简单的选择是使用我所用的方法HTTPPostScheduler ,就像这样:

URL url = new URL(completeUrl);
HttpURLConnection conn = (HttpURLConnection)url.openConnection();

conn.setRequestMethod("POST");
conn.setRequestProperty("type", "submit");
conn.setDoOutput(true);

// Send HTTP POST
conn.connect();


文章来源: Issues performing a query to Solr via HttpClient using Solr 3.5 and HttpClient 4.2