public <T> T put(final Class<T> type, @DelegatesTo(HttpConfig.class) final Closure closure) {
        return type.cast(interceptors.get(HttpVerb.PUT).apply(configureRequest(type, HttpVerb.PUT, closure), this::doPut));
    }
public < T > T put ( final Class < T > type , @ DelegatesTo ( HttpConfig . class ) final Closure closure ) { return type . cast ( interceptors . get ( HttpVerb . PUT ) . apply ( configureRequest ( type , HttpVerb . PUT , closure ) , this :: doPut ) ) ; }
Executes an PUT request on the configured URI, with additional configuration provided by the configuration closure. The result will be cast
to the specified `type`.

[source,groovy]
----
def http = HttpBuilder.configure {
request.uri = 'http://localhost:10101'
}
Date date = http.put(Date){
request.uri.path = '/date'
request.body = '{ "timezone": "America/Chicago" }'
request.contentType = 'application/json'
response.parser('text/date') { ChainedHttpConfig config, FromServer fromServer ->
Date.parse('yyyy.MM.dd HH:mm', fromServer.inputStream.text)
}
}
----

The configuration `closure` allows additional configuration for this request based on the {@link HttpConfig} interface.

@param closure the additional configuration closure (delegated to {@link HttpConfig})
@return the result of the request cast to the specified type