content: package com.ctrip.framework.apollo.common.utils;
  
  import com.google.common.base.MoreObjects;
  import com.google.gson.Gson;
  import com.google.gson.reflect.TypeToken;
  
  import org.springframework.web.client.HttpStatusCodeException;
  
  import java.lang.reflect.Type;
  import java.util.Map;
  
  public final class ExceptionUtils {
  
    private static Gson gson = new Gson();
  
    private static Type mapType = new TypeToken<Map<String, Object>>() {}.getType();
  
    public static String toString(HttpStatusCodeException e) {
      Map<String, Object> errorAttributes = gson.fromJson(e.getResponseBodyAsString(), mapType);
      if (errorAttributes != null) {
        return MoreObjects.toStringHelper(HttpStatusCodeException.class).omitNullValues()
            .add("status", errorAttributes.get("status"))
            .add("message", errorAttributes.get("message"))
            .add("timestamp", errorAttributes.get("timestamp"))
            .add("exception", errorAttributes.get("exception"))
            .add("errorCode", errorAttributes.get("errorCode"))
            .add("stackTrace", errorAttributes.get("stackTrace")).toString();
      }
      return "";
    }
  }
  