code: @Override
      public void post_form(String path, Map<String, String> data, boolean crumbFlag) throws IOException {
          HttpPost request;
          if (data != null) {
              // https://gist.github.com/stuart-warren/7786892 was slightly
              // helpful here
              List<String> queryParams = new ArrayList<>();
              for (String param : data.keySet()) {
                  queryParams.add(param + "=" + EncodingUtils.formParameter(data.get(param)));
              }
  
              queryParams.add("json=" + EncodingUtils.formParameter(JSONObject.fromObject(data).toString()));
              String value = mapper.writeValueAsString(data);
              StringEntity stringEntity = new StringEntity(value, ContentType.APPLICATION_FORM_URLENCODED);
              request = new HttpPost(UrlUtils.toNoApiUri(uri, context, path) + StringUtils.join(queryParams, "&"));
              request.setEntity(stringEntity);
          } else {
              request = new HttpPost(UrlUtils.toNoApiUri(uri, context, path));
          }
  
          handleCrumbFlag(crumbFlag, request);
  
          HttpResponse response = client.execute(request, localContext);
          jenkinsVersion = ResponseUtils.getJenkinsVersion(response);
  
          try {
              httpResponseValidator.validateResponse(response);
          } finally {
              EntityUtils.consume(response.getEntity());
              releaseConnection(request);
          }
      }
docs: {@inheritDoc}