class ServicePinger
&nbs
p; {
PRivate
static readonly I
LOG log = LogManager.GetLogger(ty
PEof(ServicePinger));
p
ublic ServicePinger(string s
ITeN
ame, string siteUrl, string serviceUrl)
{
if (siteName
== null)
t
hrow new
argumentException("siteName can't be null");
if (siteUrl == null)
throw new
argumentException("siteUrl can't be null");
if (serviceUrl == null)
throw new ArgumentException("serviceUrl can't be null");
if (siteName.Length == 0)
throw new ArgumentException("siteName can't be empty");
if (siteUrl.Length == 0)
throw new ArgumentException("siteUrl can't be empty");
if (serviceUrl.Length == 0)
throw new ArgumentException("serviceUrl can't be empty");
pin
gingSiteName = siteName;
pingingSiteUrl = siteUrl;
serviceUrlToPing = serviceUrl;
}
private string pingingSiteName = string.Empty;
private string pingingSiteUrl = string.Empty;
private string serviceUrlToPing = string.Empty;
private int timeoutInMilliseconds = 3000;
/// <summary>
/// Does the actual pinging of the service
/// </summary>
public void Ping()
{
try
{
HttpWe
brequest request = (HttpWebRequest)WebRequest.Create(serviceUrlToPing);
request.Method = "POST";
request.ContentType = "text/
XMl";
request.Timeout = timeoutInMilliseconds;
request.C
redentials = CredentialCache.DefaultNetworkCredentials;
Stream stream = (Stream)request.GetRequestStream();
using (X
MLTextWriter writer = new XmlTextWriter(stream, Encoding.ASCII))
{
writer.Wri
testartDocument();
writer.WriteStartElement("methodCall");
writer.WriteElementString("methodName", "we
blogUpdates.ping");
writer.WriteStartElement("params");
writer.WriteStartElement("param");
writer.WriteElementString("value", pingingSiteName);
writer.WriteEndElement();
writer.WriteStartElement("param");
writer.WriteElementString("value", pingingSiteUrl);
writer.WriteEndElement();
writer.WriteEndElement();
writer.WriteEndElement();
}
request.GetResponse();
}
catch (Invalid
operationException ex)
{
log.Error(ex);
}
catch (NotSupportedException ex)
{
log.Error(ex);
}
}
}