2015-11-13 4 views
0

У меня есть стандартный HttpServlet в моем веб-проекте java. Я использую Netbeans. Я хочу вызвать веб-службу Restfull внутри сервлета и после того, как я поймаю ответ как JSON и запустил JSP. Я попытался найти в сети, но я ничего не нашел.Call RestFull Web Service внутри сервлета

Спасибо

+1

Я не совсем понимаю вопрос, что именно вы ищете? вам нужен пример кода для вызова веб-службы restfull? или вы хотите позвонить своему собственному созданному сервису отдыха? –

+0

Пример! что ты не понял? –

ответ

1

Вот пример HttpPost:

try { 
      HttpPost httpPost = new HttpPost("https://exampleurl/providerexample/api/v1/loansforexample" 
      ); 
      StringEntity params; 
      params = new StringEntity("{" 
        + "\"clientId\": \"" + "2" + "\"," 
        + "\"productId\": \"" + "1" + "\"," 
        + "\"locale\": \"" + "en" + "\"}"); 

      httpPost.addHeader("Content-Type", "text/html"); //or text/plain 
      httpPost.addHeader("Accept-Encoding", "gzip, deflate, sdch"); 
      httpPost.setEntity(params); 
      HttpResponse response = client.execute(httpPost); 
      int statuscode = response.getStatusLine().getStatusCode(); 
      String responseBody = EntityUtils.toString(response.getEntity()); 
      if (statuscode == 200) { 
       System.out.println(responseBody); 
      } 
      if (statuscode != 200) { 
       System.out.println(responseBody); 
//    JSONObject obj = new JSONObject(responseBody); 
//    JSONArray errors = obj.getJSONArray("errors"); 
//    String errorMessage = ""; 
//    if (errors.length() > 0) { 
//     errorMessage = errors.getJSONObject(0).getString("developerMessage"); 
      } 
     } 
     catch (Exception ex) { 
      ex.printStackTrace(); 
      ex.getMessage(); 
     } 

HttpGet это почти то же самое.

+0

OK спасибо. Но у моего запроса (GET/POST) есть текст параметра, а ответ - JSON –

+1

@LorenzoSogliani. Если это ваш собственный веб-сервис RESTful, вы можете изменить то, что создает сервис rest в RESTFULsomethingFacade, если это наоборот, вы можете изменить его в эту строку кода: httpPost.addHeader («Content-Type», «application/json»); to: httpPost.addHeader («Content-Type», «что угодно»); –

+2

@LorenzoSogliani Я редактировал код, так как вы можете видеть, что я сейчас отправляю текст/html, а text/plain - еще один пример формата, который вы можете использовать. –