private Map<String, Object> doPostAsMap(String server, String uri, Map<String, String> headers, Map<String, Object> params, int readTimeout){
for (;;){
try {
Map<String, Object> respMap = doRequest(server, uri, HttpMethod.POST, headers, params, readTimeout);
if (respMap == null || respMap.isEmpty()){
return null;
}
return respMap;
} catch (AuthFailException e){
throw new IllegalArgumentException("appKey isn't right, please check");
} catch (Server503Exception | HttpRequest.HttpRequestException e){
Sleeps.sleep(3);
String oldServer = currentServer;
log.warn("current server({}) is maybe unavailable, trying to selects a new server", currentServer);
selectServer();
log.warn("old server({}) is unavailable, select a new server({})", oldServer, currentServer);
server = currentServer;
}
}
}