【发布时间】:2017-02-16 11:29:28
【问题描述】:
我已经看到很多问题,但没有解决我的问题。我正在使用弹性搜索搜索查询 json 使用 spring resttemplate 搜索我的数据。请帮忙。
我在 asyntask android 中这样做
@Override
protected List<JobPosts> doInBackground(Object[] objects) {
List list = null;
try {
SearchForm searchForms = (SearchForm) objects[0];
String searchJson="";
String plainCreds = "*********:********";
final String url = "********";
RestTemplate restTemplate = new RestTemplate();
restTemplate.getMessageConverters().add(new MappingJackson2HttpMessageConverter());
HttpEntity<String> request = new HttpEntity<>(searchJson, headers);
Log.d("location", "before exchange");
ResponseEntity<JobPosts[]> response = restTemplate.exchange(url, HttpMethod.POST, request, JobPosts[].class);
JobPosts[] jobPosts = response.getBody();
Log.d("location", "after exchange");
list = Arrays.asList(jobPosts);
} catch (Exception e) {
Log.d("location", e.getMessage());
}
我得到了这个异常
Caused by: org.springframework.web.client.HttpClientErrorException: 400 Bad Request
at org.springframework.web.client.DefaultResponseErrorHandler.handleError(DefaultResponseErrorHandler.java:76)
at org.springframework.web.client.RestTemplate.handleResponseError(RestTemplate.java:524)
at org.springframework.web.client.RestTemplate.doExecute(RestTemplate.java:481)
at org.springframework.web.client.RestTemplate.execute(RestTemplate.java:439)
at org.springframework.web.client.RestTemplate.exchange(RestTemplate.java:415)
at in.thoughtsmith.jink.MapsActivity$SearchJob.doInBackground(MapsActivity.java:689)
at in.thoughtsmith.jink.MapsActivity$SearchJob.doInBackground(MapsActivity.java:647)
at android.os.AsyncTask$2.call(AsyncTask.java:292)
at java.util.concurrent.FutureTask.run(FutureTask.java:237)
at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:231)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1115)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:590)
at java.lang.Thread.run(Thread.java:818)
【问题讨论】:
-
您在 ES 服务器日志中看到什么异常?另外我认为您的
searchJson字符串不正确。 -
我在语义扩展中使用了相同的 searchJson 字符串,它给了我有效的结果。我也没有得到你 ES 服务器日志的含义。对不起,我是新手
-
查询可能没问题,但是你不能像在Java代码中那样粘贴它,你需要用它制作一个真正的字符串。我什至对您的代码编译感到惊讶
-
另外,您不应该多次发布相同的问题,我已经关闭了您之前的问题,因为它与之前的问题完全相同:stackoverflow.com/questions/42240927/… 已经有了答案。
-
抱歉,它是动态字符串,是在用户输入技能时在运行时创建的,我不想发布该代码....我将编辑我的问题
标签: java android spring elasticsearch spring-rest