code: function StringClient(options) {
      assert.object(options, 'options');
      assert.optionalObject(options.gzip, 'options.gzip');
      assert.optionalObject(options.contentMd5, 'options.contentMd5');
  
      if (options.contentMd5) {
          assert.optionalArrayOfString(options.contentMd5.encodings,
              'options.contentMd5.encodings');
          assert.optionalBool(options.contentMd5.ignore,
              'options.contentMd5.ignore');
  
          if (Array.isArray(options.contentMd5.encodings)) {
              options.contentMd5.encodings.forEach(function _checkMd5Enc(enc) {
                  assert.ok(Buffer.isEncoding(enc),
                      'encoding "' + enc + '" is an invalid encoding');
              });
          }
      }
  
      options.accept = options.accept || 'text/plain';
      options.name = options.name || 'StringClient';
      options.contentType =
          options.contentType || 'application/x-www-form-urlencoded';
  
      HttpClient.call(this, options);
      this.contentMd5 = options.contentMd5 || {};
      this.gzip = options.gzip;
  
      if (!this.contentMd5.encodings) {
          // The undefined value here is used to make node use the default
          // encoding when computing the response content md5 hash.
          this.contentMd5.encodings = [undefined];
      }
  }
docs: --- API