anchor.diff:      }
   
       req.onLoad.first.then((_) {
  -      c.complete(new StreamyHttpResponse(req.status, req.statusText, req.responseText));
  +      var bodyType = null;
  +      var responseType = req.getResponseHeader('Content-Type');
  +      if (responseType != null) {
  +        bodyType = responseType.split(';')[0];
  +      }
  +      c.complete(new StreamyHttpResponse(req.status, req.statusText, req.responseText, bodyType));
       });
       req.onError.first.then(c.completeError);
   
  
positive.code: 
    final String message;
    final int code;
  
    ProxyException(this.message, this.code);
  
    String toString() => '$code: $message';
  }
  
negative.code:     var payload = req.hasPayload ? json.stringify(req.payload) : null;
      return httpHandler.request(url, req.httpMethod, payload: payload).then((resp) {
        if (resp.statusCode != 200) {
          Map jsonError = null;
          if (resp.bodyType == 'application/json') {
            jsonError = json.parse(resp.body);
          }
          throw new ProxyException(resp.statusCode,
              'API call returned status: ${resp.statusText}', jsonError);
        }
        return req.responseDeserializer(resp.body);
      }).asStream();
  