2017-02-15 6 views
0

Привет, я пытаюсь подключиться с помощью поиска с использованием Spring resttemplate, но он дает исключение из-за плохого запроса. ниже мой кодSpring Basic OAuth throwing bad Request Exception

String plainCreds = "elasticsearch:*****"; 
      byte[] plainCredsBytes = plainCreds.getBytes(); 
      byte[] base64CredsBytes = Base64.encodeBase64(plainCredsBytes); 
      String base64Creds = new String(base64CredsBytes); 

      HttpHeaders headers = new HttpHeaders(); 
      headers.set("Authorization", "Basic " + base64Creds); 

      final String url = "https://ff92ba95318093026b7a06180f2b2d19.us-east-1.aws.found.io:9243/jinkjobposts_dev_v1/jobPosts"; 

      RestTemplate restTemplate = new RestTemplate(); 
      restTemplate.getMessageConverters().add(new MappingJackson2HttpMessageConverter()); 

      HttpEntity<String> request = new HttpEntity<>(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); 

оно дает это исключение.

FATAL EXCEPTION: AsyncTask #2 
Process: in.thoughtsmith.jink, PID: 8902 
java.lang.RuntimeException: An error occured while executing doInBackground() 
at android.os.AsyncTask$3.done(AsyncTask.java:304) 
at java.util.concurrent.FutureTask.finishCompletion(FutureTask.java:355) 
at java.util.concurrent.FutureTask.setException(FutureTask.java:222) 
at java.util.concurrent.FutureTask.run(FutureTask.java:242) 
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) 
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:690) 
at in.thoughtsmith.jink.MapsActivity$SearchJob.doInBackground(MapsActivity.java:645) 
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)  

Пожалуйста, мне я делаю это в первый раз

+1

Я думаю, что вы просто не указали '/ _search' в конце своего URL-адреса. – Val

+0

да спасибо, я пропустил/_search. Не могли бы вы помочь мне на этом http://stackoverflow.com/questions/42240927/how-to-search-via-json-in-elastic-search-using-spring-resttemplate-in-android/42247492#42247492 – FaisalAhmed

ответ

1

Это не проблема авторизации. Ваш url просто пропускает конечную точку _search в конце, следовательно, вы получите HTTP 400.

final String url = "https://ff92ba95318093026b7a06180f2b2d19.us-east-1.aws.found.io:9243/jinkjobposts_dev_v1/jobPosts/_search"; 
+0

спасибо Val. Я пытаюсь подключиться к эластичному поиску с использованием шаблона весеннего отдыха здесь http://stackoverflow.com/questions/42240927/how-to-search-via-json-in-elastic-search-using-spring-resttemplate-in- android, но это не дает мне никакого результата или исключения – FaisalAhmed