code: public void asyncPut(final String url, final String mediaType, final Supplier<String> supplier, final Callback callback) {
  		requireNonNull(supplier, "A valid supplier expected");
  		asyncPutBytes(url, mediaType, () -> ofNullable(supplier.get()).orElse("").getBytes(), callback);
  	}
docs: Puts data to a server via a HTTP PUT request.
  @param url - URL target of this request
  @param mediaType - Content-Type header for this request
  @param supplier - supplies the content of this request
  @param callback - is called back when the response is readable