anchor.diff:      // Build the archive.
       return archiveContainer(appContainer, true).then((List<int> archivedData) {
         monitor.worked(3);
  -      httpRequest = _buildHttpRequest('localhost', archivedData);
  +      httpRequest = _buildPushRequest('localhost', archivedData);
   
         // Send this payload to the USB code.
         return _fetchAndroidDevice();
  
positive.code:   Future _sendHttpPush(String target, ProgressMonitor monitor) {
      return archiveContainer(appContainer, true).then((List<int> archivedData) {
        monitor.worked(3);
        return _sendTcpRequest(target, _buildHttpRequest(target, archivedData));
      }).then((List<int> responseBytes) {
        String response = new String.fromCharCodes(responseBytes);
        List<String> lines = response.split('\n');
  
negative.code:   }
  
    /**
     * Builds a request to given `target` at given `path` and with given `payload`
     * (body content).
     */
    List<int> _buildHttpRequest(String target, String path, {List<int> payload}) {
      List<int> httpRequest = [];
  
      // Build the HTTP request headers.
      String header =
          'POST /$path HTTP/1.1\r\n'
          'User-Agent: Spark IDE\r\n'
          'Host: ${target}:2424\r\n';
      List<int> body = [];
  
      if (payload != null) {
        body.addAll(payload);
      }
      httpRequest.addAll(header.codeUnits);
      httpRequest.addAll('Content-length: ${body.length}\r\n\r\n'.codeUnits);
      httpRequest.addAll(body);
  
      return httpRequest;
    }
  
    List<int> _buildPushRequest(String target, List<int> archivedData) {
      return _buildHttpRequest(target,
          "zippush?appId=${appContainer.project.name}&appType=chrome",
          payload: archivedData);
    }
  
    List<int> _buildLaunchRequest(String target) {
      return _buildHttpRequest(target,
          "launch", payload: "appId=${appContainer.project.name}".codeUnits);
    }
  
    Future _sendTcpRequest(String target, List<int> httpRequest) {
  