code: @Override
      public void setBody(FoxHttpRequestBodyContext context) throws FoxHttpRequestException {
          try {
              writer = new PrintWriter(new OutputStreamWriter(outputStream, charset), true);
  
              processFormFields();
              processStream();
  
              writer.flush();
              writer.append("--" + boundary + "--").append(lineFeed);
              writer.close();
  
              //Execute interceptor
              executeInterceptor(context);
  
              //Add Content-Length header if not exist
              if (context.getUrlConnection().getRequestProperty(HeaderTypes.CONTENT_LENGTH.toString()) == null) {
                  context.getUrlConnection().setRequestProperty(HeaderTypes.CONTENT_LENGTH.toString(), Integer.toString(outputStream.size()));
              }
  
              context.getUrlConnection().getOutputStream().write(outputStream.toByteArray());
  
          } catch (Exception e) {
              throw new FoxHttpRequestException(e);
          }
  
      }
docs: Set the body of the request
  
  @param context context of the request
  @throws FoxHttpRequestException can throw different exception based on input streams and interceptors