docs: protected History[] constructHistory(BasicNameValuePair[] params) throws Exception {
          String uri = HISTORY + uriEncode(_profileName);
  
          try {
              JSONObject response = new JSONObject(doGet(uri, params));
              JSONArray historyArray = response.getJSONArray("history");
              history = new History[historyArray.length()];
  
              for (int i = 0; i < historyArray.length(); i++) {
                  history[i] = new History();
                  JSONObject jsonHistory = historyArray.getJSONObject(i);
                  if (jsonHistory == null) {
                      continue;
                  }
  
                  if (!jsonHistory.isNull("id")) {
                      history[i].setId(jsonHistory.getInt("id"));
                  }
                  if (!jsonHistory.isNull("profileId")) {
                      history[i].setProfileId(jsonHistory.getInt("profileId"));
                  }
                  if (!jsonHistory.isNull("clientUUID")) {
                      history[i].setClientUUID(jsonHistory.getString("clientUUID"));
                  }
                  if (!jsonHistory.isNull("createdAt")) {
                      history[i].setCreatedAt(jsonHistory.getString("createdAt"));
                  }
                  if (!jsonHistory.isNull("requestType")) {
                      history[i].setRequestType(jsonHistory.getString("requestType"));
                  }
                  if (!jsonHistory.isNull("requestURL")) {
                      history[i].setRequestURL(jsonHistory.getString("requestURL"));
                  }
                  if (!jsonHistory.isNull("requestParams")) {
                      history[i].setRequestParams(jsonHistory.getString("requestParams"));
                  }
                  if (!jsonHistory.isNull("requestPostData")) {
                      history[i].setRequestPostData(jsonHistory.getString("requestPostData"));
                  }
                  if (!jsonHistory.isNull("requestHeaders")) {
                      history[i].setRequestHeaders(jsonHistory.getString("requestHeaders"));
                  }
                  if (!jsonHistory.isNull("responseCode")) {
                      history[i].setResponseCode(jsonHistory.getString("responseCode"));
                  }
                  if (!jsonHistory.isNull("responseHeaders")) {
                      history[i].setResponseHeaders(jsonHistory.getString("responseHeaders"));
                  }
                  if (!jsonHistory.isNull("responseContentType")) {
                      history[i].setResponseContentType(jsonHistory.getString("responseContentType"));
                  }
                  if (!jsonHistory.isNull("originalRequestURL")) {
                      history[i].setOriginalRequestURL(jsonHistory.getString("originalRequestURL"));
                  }
                  if (!jsonHistory.isNull("originalRequestParams")) {
                      history[i].setOriginalRequestParams(jsonHistory.getString("originalRequestParams"));
                  }
                  if (!jsonHistory.isNull("originalRequestPostData")) {
                      history[i].setOriginalRequestPostData(jsonHistory.getString("originalRequestPostData"));
                  }
                  if (!jsonHistory.isNull("originalRequestHeaders")) {
                      history[i].setOriginalRequestHeaders(jsonHistory.getString("originalRequestHeaders"));
                  }
                  if (!jsonHistory.isNull("originalResponseCode")) {
                      history[i].setOriginalResponseCode(jsonHistory.getString("originalResponseCode"));
                  }
                  if (!jsonHistory.isNull("originalResponseHeaders")) {
                      history[i].setOriginalResponseHeaders(jsonHistory.getString("originalResponseHeaders"));
                  }
                  if (!jsonHistory.isNull("originalResponseContentType")) {
                      history[i].setResponseContentType(jsonHistory.getString("originalResponseContentType"));
                  }
                  if (!jsonHistory.isNull("modified")) {
                      history[i].setModified(jsonHistory.getBoolean("modified"));
                  }
                  if (!jsonHistory.isNull("requestBodyDecoded")) {
                      history[i].setRequestBodyDecoded(jsonHistory.getBoolean("requestBodyDecoded"));
                  }
                  if (!jsonHistory.isNull("responseBodyDecoded")) {
                      history[i].setResponseBodyDecoded(jsonHistory.getBoolean("responseBodyDecoded"));
                  }
                  if (!jsonHistory.isNull("extraInfo")) {
                      history[i].setExtraInfoFromString(jsonHistory.getString("extraInfo"));
                  }
                  /**
                   * To get the json responseData make a call specifically using the id
                   */
  
                  int id = history[i].getId();
                  String idUri = uri + "/" + id;
                  JSONObject historyId = new JSONObject(doGet(idUri, null));
  
                  String responseData = historyId.getJSONObject("history").getString("responseData");
                  history[i].setResponseData(responseData);
                  String originalResponseData = historyId.getJSONObject("history").getString("originalResponseData");
                  history[i].setOriginalResponseData(originalResponseData);
              }
          } catch (Exception e) {
              e.printStackTrace();
          }
          return history;
      }