public IncomingMessage<O> sendMessage(ClientOptions options, ContentType contentType, M message)
     throws Exception {
   IncomingMessage<P> response =
       target.sendMessage(
           options,
           encoder.getContentType(options, contentType),
           encoder.encode(options, message));
   ContentType responseContentType = response.getContentType();
   return new IncomingMessage<O>(
       responseContentType, decoder.decode(responseContentType, response.getData()));
 }
 public ContentType getContentType(ClientOptions options, ContentType contentType)
     throws Exception {
   return target.getContentType(options, encoder.getContentType(options, contentType));
 }