@Override
protected <T> HTTPResponseAdapter<T> process(
final HTTPMethod method,
final String endpointWithParameter,
final KvPCollection header,
final HTTPContentWriter contentWriter,
final HTTPContentReader<T> contentReader,
final HTTPConnectionParameter connectionParameter) throws Exception {
HttpURLConnection urlcon = openConnection(endpointWithParameter);
urlcon.setRequestMethod(method.name());
applyHeader(urlcon, header);
applyConnectionParameter(urlcon, connectionParameter);
String contentCharset = getCharsetFromContentTypeHeader(header);
sendContent(urlcon, contentCharset, header, contentWriter, connectionParameter.isAllowChunkedRequestContent());
HTTPResponseAdapter<T> response = prepareResponse(endpointWithParameter, urlcon);
readResponseContent(urlcon, response, contentReader, connectionParameter);
return response;
}