anchor.diff:    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";
  
positive.code: 
  void requestReceivedHandler(HttpRequest request) {
    HttpResponse response = request.response;
    String bodyString = "";      // request body byte data
    var completer = new Completer();
    if (request.method == "GET") { completer.complete("query string data received");
    } else if (request.method == "POST") {
      request
        .transform(UTF8.decoder) // decode the body as UTF
        .listen(
            (String str){bodyString = bodyString + str;},
            onDone: (){
              completer.complete("body data received");},
            onError: (e){
              print('exeption occured : ${e.toString()}');}
          );
    }
    else {
      response.statusCode = HttpStatus.METHOD_NOT_ALLOWED;
  
negative.code:   </head>
    <body>
      <H1>Data available from the request</H1>
      <pre>${makeSafe(createLogMessage(request, bodyBytes)).toString()}
      </pre>
    </body>
  </html>
  