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)
{
}
}
}
}
}