anchor.diff:    </head>
     <body>
       <H1>Data available from the request</H1>
  -    <pre>${makeSafe(createLogMessage(request, bodyString)).toString()}
  +    <pre>${makeSafe(createLogMessage(request, bodyBytes)).toString()}
       </pre>
     </body>
   </html>
  
positive.code:   // process the request and send a response
    completer.future.then((data){
      if (LOG_REQUESTS) {
        print(createLogMessage(request, bodyString));
      }
      response.headers.add("Content-Type", "text/html; charset=UTF-8");
      response.write(createHtmlResponse(request, bodyString));
      response.close();
    });
  }
  
  // create html response text
  String createHtmlResponse(HttpRequest request, String bodyString) {
    var res = '''<html>
    <head>
      <title>DumpHttpRequest</title>
  
negative.code:   Aug. 2013, API change (removed StringDecoder and added dart:convert) fixed
    Oct. 2013, API change (dart:utf removed) fixed
    Nov. 2013, API change (remotHost -> remoteAddress) fixed
    Aug. 2015, Updated for the latest API
  */
  
  import "dart:async";
  