private AcmeHttpResponse RequestHttpGet(Uri uri)
{
var requ = (HttpWebRequest)WebRequest.Create(uri);
if (Proxy != null)
requ.Proxy = Proxy;
requ.Method = AcmeProtocol.HTTP_METHOD_GET;
requ.UserAgent = this.UserAgent;
try
{
if (BeforeGetResponseAction != null)
BeforeGetResponseAction(requ);
using (var resp = (HttpWebResponse)requ.GetResponse())
{
ExtractNonce(resp);
var acmeResp = new AcmeHttpResponse(resp);
LastResponse = acmeResp;
return acmeResp;
}
}
catch (WebException ex) when (ex.Response != null)
{
using (var resp = (HttpWebResponse)ex.Response)
{
var acmeResp = new AcmeHttpResponse(resp)
{
IsError = true,
Error = ex,
};
LastResponse = acmeResp;
if (ProblemDetailResponse.CONTENT_TYPE == resp.ContentType
&& !string.IsNullOrEmpty(acmeResp.ContentAsString))
{
acmeResp.ProblemDetail = JsonConvert.DeserializeObject<ProblemDetailResponse>(
acmeResp.ContentAsString);
}
return acmeResp;
}
}
}