Ejemplo n.º 1
0
        private void ProcessItem(ISolrQuery query)
        {
            string fullUrl = query.GetQueryUrl();

            Log.Debug("Aparecium - Url: " + fullUrl);

            try
            {
                DateTime   start      = DateTime.Now;
                WebRequest webRequest = WebRequest.Create(fullUrl);
                webRequest.Timeout = 5000;

                using (var wrs = (HttpWebResponse)webRequest.GetResponse())
                {
                    Stream receiveStream = wrs.GetResponseStream();
                    if (receiveStream != null)
                    {
                        StreamReader readStream = new StreamReader(receiveStream);

                        string data = readStream.ReadToEnd();
                        TotalPayload += data.Length;
                        query.Bytes   = data.Length;

                        TimeSpan span = DateTime.Now.Subtract(start);
                        TotalTime     += span.TotalMilliseconds;
                        query.Timespan = span;

                        //number of rows/documents requested
                        query.RowsRequested = GetRowsRequestedCount(data);

                        //number of documents found, not the number returned.
                        query.DocumentsFound = GetDocumentsFoundCount(data);

                        //number of documents returned in the query
                        query.DocumentsReturned = GetDocumentsReturnedCount(data);
                        TotalNumDocsReturned   += query.DocumentsReturned;

                        readStream.Close();
                    }
                }
            }
            catch (Exception ex)
            {
                Log.Warn($"Error making an http request to: {fullUrl}, {ex.Message}", this);
            }
        }