Получить HttpWebResponse из Html Agility Pack HtmlWeb

c# html-agility-pack httpwebresponse

Вопрос

Можно ли получить HttpWebResponse из Html Agility Pack HtmlWeb ?

Как и в случае, если я позвоню:

HtmlWeb web = new HtmlWeb ();
HtmlDocument document = web.Load ("http://stackoverflow.com/");

Есть ли удобный способ извлечения HttpWebResponse из web экземпляра для просмотра заголовков - например, для получения свойств заголовка, таких как тип содержимого?

Есть до и после делегатов, которые будут работать:

HtmlWeb web = new HtmlWeb ();

web.PreRequest = delegate (HttpWebRequest request) {
    request.Timeout = 10 * 1000;
    return true;
};
web.PostResponse = delegate (HttpWebRequest request, HttpWebResponse response) {
    //response.Headers;
    //response.ContentType;
};

HtmlDocument document = web.Load ("http://stackoverflow.com/");

Вместо этого есть способ получить ответ вроде: (HttpWebResponse)web.GetResponse();

Принятый ответ

Вы можете использовать TaskCompletionSource + async / wait

var web = new HtmlAgilityPack.HtmlWeb();
var tcs = new TaskCompletionSource<HttpWebResponse>();

web.PostResponse = delegate(HttpWebRequest request, HttpWebResponse response)
{
    tcs.SetResult(response);
};

var  document = web.Load("http://stackoverflow.com/");
var httpWebResponse = await tcs.Task;


Related

Лицензировано согласно: CC-BY-SA with attribution
Не связан с Stack Overflow
Лицензировано согласно: CC-BY-SA with attribution
Не связан с Stack Overflow