code: private Response call(Method method, String service, Request request, File file) throws IOException {
          URL url = new URL(this.serviceBaseUrl + service + getRequestParams(request));
          HttpURLConnection connection = getConnection(url);
          connection.setRequestMethod(method.toString());
          setupHeaders(connection);
          if (useCredentials()) {
              String userpass = user + ":" + pass;
              String encoding = new String(Base64.encodeBase64(userpass.getBytes()));
              connection.setRequestProperty("Authorization", "Basic " + encoding);
          }
          connection.connect();
          if ((request != null && request.isPayload()) || file != null) {
              if (connection.getRequestProperty(CONTENT_TYPE).startsWith("multipart/form-data") ||
                      (request != null && request.getMultipartData() != null) || file != null) {
                  writeMultipartDataRequest(connection, request, file);
              } else if (connection.getRequestProperty(CONTENT_TYPE).startsWith("application/json")) {
                  writeJsonDataRequest(connection, request);
              } else {
                  throw new InvalidHTTPException("Content-Type '" + connection.getRequestProperty(CONTENT_TYPE) +
                          "' not currently supported by Selenified. Current supported types are " +
                          "'application/json' and 'multipart/form-data'.");
              }
          }
          return getResponse(connection);
      }
docs: A basic generic http call
  
  @param method  - what method are we calling
  @param service - the endpoint of the service under test
  @param request - the parameters to be passed to the endpoint for the service
  call
  @param file    - is there a file to upload as well
  @return Response: the response provided from the http call