Checking the Status of Search Collection URLs

The following is an example in C# of retrieving status information for given set of URLs through the SOAP API:

    SearchCollectionUrlStatusQuery query = new SearchCollectionUrlStatusQuery();
    query.collection = COLLECTION;
    query.crawlurlstatus = new SearchCollectionUrlStatusQueryCrawlurlstatus();
    query.crawlurlstatus.crawlurlstatus = new crawlurlstatus();
    query.crawlurlstatus.crawlurlstatus.limit = 100;
    query.crawlurlstatus.crawlurlstatus.limitSpecified = true;
    query.forcesync = true;
    
    crawlurlstatusfilter filter = new crawlurlstatusfilter();
    filter.name = crawlurlstatusfilterName.url;
    filter.nameSpecified = true;
    filter.comparison = crawlurlstatusfilterComparison.wc;
    filter.comparisonSpecified = true;
    filter.value = "*";
    
    query.crawlurlstatus.crawlurlstatus.crawlurlstatusfilteroperation = new
    crawlurlstatusfilteroperation();
    
    query.crawlurlstatus.crawlurlstatus.crawlurlstatusfilteroperation.name =
    crawlurlstatusfilteroperationName.and;
    
    query.crawlurlstatus.crawlurlstatus.crawlurlstatusfilteroperation.nameSpecified =
    true;
    
    query.crawlurlstatus.crawlurlstatus.crawlurlstatusfilteroperation.Items = new
    crawlurlstatusfilter[1];
    
    query.crawlurlstatus.crawlurlstatus.crawlurlstatusfilteroperation.Items[0] = filter;
    
    SearchCollectionUrlStatusQueryResponse sr = port.SearchCollectionUrlStatusQuery(query);
    if (sr.crawlurlstatusresponse.errorSpecified && sr.crawlurlstatusresponse.error == crawlurlstatusresponseError.invalid)
    {
    }
    else if (sr.crawlurlstatusresponse.errorSpecified && sr.crawlurlstatusresponse.error == crawlurlstatusresponseError.database)
    {
    }
    else
    {
        if (sr.crawlurlstatusresponse.crawlurl != null)
        {
            foreach (crawlurl curl in sr.crawlurlstatusresponse.crawlurl)
            {
                if (curl.stateSpecified)
                {
                    if (curl.state == crawlurlState.error)
                    {
                        System.Console.WriteLine("error: " + curl.url);
                    }
                    else if (curl.state == crawlurlState.warning)
                    {
                        System.Console.WriteLine("warning: " + curl.url);
                    }
                }
    
                if (curl.log != null)
                {
                    foreach (logmessage msg in curl.log.Items)
                    {
                    }
                }
            }
        }
    }