Ottieni HttpWebResponse da Html Agility Pack HtmlWeb

c# html-agility-pack httpwebresponse

Domanda

HttpWebResponse può essere ottenuto da Html Agility Pack HtmlWeb ?

Come in, se chiamo:

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

Esiste un metodo conveniente per recuperare HttpWebResponse web per visualizzare le intestazioni, ad esempio per recuperare le proprietà dell'intestazione come il tipo di contenuto?

Ci sono delegati pre e post, che funzioneranno:

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/");

Invece, c'è un modo per ottenere la risposta qualcosa del tipo: (HttpWebResponse)web.GetResponse();

Risposta accettata

È possibile utilizzare TaskCompletionSource + async / await

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

Autorizzato sotto: CC-BY-SA with attribution
Non affiliato con Stack Overflow
Autorizzato sotto: CC-BY-SA with attribution
Non affiliato con Stack Overflow