2015-03-03 18 views
6

Attualmente sto ricevendo HttpResponseException, che ha solo statusCode. Come posso ottenere una risposta completa?Come ottenere risposta completa per Groovy RestClient risposta non riuscita

Ecco il codice che sto utilizzando

restClient = new RESTClient("http://${Server}") 
try { 
    HttpResponseDecorator resp = restClient.post(path,body,requestContentType)  
     as HttpResponseDecorator 
    return JSONObject.fromObject(resp.getData()).get("topKey",""); 
    } 
catch (HttpResponseException e) { 
      error(e.toString()) 
    } 

Ed è solo in uscita questo:

[oaf.error] groovyx.net.http.HttpResponseException: Internal Server Error 

risposta

4

Aggiungere gestore di risposta personalizzato fallito:

 restClient = new RESTClient("http://${Server}") 
     restClient.handler.failure = { resp, data -> 
      resp.setData(data) 
      String headers = "" 
      resp.headers.each { 
       headers = headers+"${it.name} : ${it.value}\n" 
      } 
      throw new HttpResponseException(resp.getStatus(),"HTTP call failed. Status code: ${resp.getStatus()}\n${headers}\n"+ 
              "Response: "+(resp as HttpResponseDecorator).getData()) 
      return resp 
     } 
0

In realtà, è possibile estrarre il risposta completa dall'eccezione generata. Ad esempio, se l'eccezione rilevata è e e il corpo della risposta JSON deve contenere un campo denominato myCustomErrorCode, è possibile verificarne il valore osservando e.response.data.myCustomErrorCode oltre a e.statusCode.

Problemi correlati