public void Validate(WebResponse response)
{
if (response is HttpWebResponse)
{
HttpWebResponse httpResponse = (HttpWebResponse)response;
if (httpResponse.StatusCode == HttpStatusCode.OK)
return;
DateTime responseDate;
string date = response.Headers.Get("Date");
if (date != null
&& DateTime.TryParse(date, out responseDate))
if (DateTime.Now.Subtract(responseDate).TotalSeconds > 30)
throw new HttpRequestException("Local server Date is more than 30s out of sync with Remote server");
string responseBody = null;
using (var reader = new StreamReader(response.GetResponseStream(), Encoding.UTF8))
{
responseBody = reader.ReadToEnd();
// Do something with the value
}
throw new HttpRequestException(string.Format("Unexpected Response from Server: {0} {1}\n{2}\n\n{3}", httpResponse.StatusCode, httpResponse.StatusDescription, response.Headers, responseBody));
}
}