J'ai vu beaucoup de questions à ce sujet, mais rien n'a résolu mon problème. J'utilise la requête de recherche elasticsearch json pour rechercher mes données en utilisant resttemplate de printemps. S'il vous plaît aider.HttpClientErrorException: 400 Bad Request lors de la recherche dans la recherche élastique en utilisant le ressort Restangle
Je fais cela dans 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());
}
et je reçois cette exception
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)
Quelle exception voyez-vous dans les journaux de votre serveur ES? De plus, je ne pense pas que votre chaîne 'searchJson' soit correcte. – Val
J'ai utilisé même searchJson String dans l'extension sense et cela me donne un résultat valide .. aussi je n'ai pas eu ce que signifie le journal des serveurs ES. Désolé je suis nouveau à ce – FaisalAhmed
La requête est probablement ok, mais vous ne pouvez pas le coller comme ça dans le code Java, vous devez en faire une vraie chaîne. Je suis même surpris que votre code compile – Val