J'utilise RestAssured pour déclencher des appels d'API et je voulais implémenter une nouvelle tentative si les appels REST échouaient. L'exigence est parce que nous obtenons des codes de réponse intermittents 500 pour certaines API qui fonctionnent habituellement après une nouvelle tentative.Comment implémenter une logique de réessai dans RestAssured pour un appel REST échoué
J'ai mis en œuvre le code suivant, mais il ne semble pas fonctionner -
HttpClientConfig.HttpClientFactory htc = new HttpClientConfig.HttpClientFactory() {
@Override
public HttpClient createHttpClient() {
DefaultHttpClient d = new DefaultHttpClient();
d.setHttpRequestRetryHandler(new DefaultHttpRequestRetryHandler(restRetryCount, true));
return d;
}
};
RestAssuredConfig rac = RestAssured.config().httpClient(HttpClientConfig.httpClientConfig().httpClientFactory(htc));
De plus, étant donné que RestAssured ne répond pas l'enregistrement de niveau HTTPClient, j'ai essayé permettant l'enregistrement de l'apache httpclient en utilisant le java. util.logging mais que ne semble pas fonctionner non plus.
créé un fichier custom.logging.properties avec -
# Enables the header wire and context logging
org.apache.http.level = FINEST
org.apache.http.wire.level = SEVERE
# Enables the context logging for connection management & request execution
org.apache.http.impl.conn.level = FINEST
org.apache.http.impl.client.level = FINEST
org.apache.http.client.level = FINEST
et écrit ce qui suit pour lancer l'enregistrement -
public static Logger initiateHttpTrafficLogging(){
Logger log = Logger.getLogger("httptraffic.log");
ClassLoader loader = Thread.currentThread().getContextClassLoader();
InputStream is = loader.getResourceAsStream("custom.logging.properties");
try{
LogManager.getLogManager().readConfiguration(is);
log.setLevel(Level.FINEST);
log.addHandler(new ConsoleHandler());
log.setUseParentHandlers(false);
log.info("Initiating HTTP Traffic logging ::\n\n");
} catch (IOException ie){
Assert.fail("ERROR: Could not load the loggin properties !!!", ie.fillInStackTrace());
}
return log;
}
Quelqu'un pourrait-il me s'il vous plaît fournir une direction à où je vais faux ou des pointeurs pour résoudre ce problème.
Appréciez vos réponses. Merci.
Utilisez-vous une configuration à base de ressort? – user121290