docs: function(options) {
          OpenLayers.Protocol.prototype.read.apply(this, arguments);
          options = options || {};
          options.params = OpenLayers.Util.applyDefaults(
              options.params, this.options.params);
          options = OpenLayers.Util.applyDefaults(options, this.options);
          if (options.filter && this.filterToParams) {
              options.params = this.filterToParams(
                  options.filter, options.params
              );
          }
          var readWithPOST = (options.readWithPOST !== undefined) ?
                             options.readWithPOST : this.readWithPOST;
          var resp = new OpenLayers.Protocol.Response({requestType: "read"});
          if(readWithPOST) {
              var headers = options.headers || {};
              headers["Content-Type"] = "application/x-www-form-urlencoded";
              resp.priv = OpenLayers.Request.POST({
                  url: options.url,
                  callback: this.createCallback(this.handleRead, resp, options),
                  data: OpenLayers.Util.getParameterString(options.params),
                  headers: headers
              });
          } else {
              resp.priv = OpenLayers.Request.GET({
                  url: options.url,
                  callback: this.createCallback(this.handleRead, resp, options),
                  params: options.params,
                  headers: options.headers
              });
          }
          return resp;
      }