Ho bisogno di analizzare stringhe UserAgent da un'app console e questo sembra un modo semplice per farlo, ma ovviamente non ho un oggetto HttpRequest e non riesco a creare uno falso con un'intestazione User-Agent (Ricevo l'eccezione non supportata dalla piattaforma). C'è un modo per farlo, o dovrei iniziare a esplorare altre alternative al parsing degli user agent?È possibile utilizzare HttpBrowserCapabilities da un'applicazione console C#?
risposta
Il User-Agent
intestazione può essere analizzata dalla classe HttpBrowserCapabilities
con l'aiuto di un BrowserCapabilitiesFactory, come segue:
var userAgent = "Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.2.10) " +
"Gecko/20100914 Firefox/3.6.10";
var browser = new HttpBrowserCapabilities {
Capabilities = new Hashtable {{string.Empty, userAgent}}
};
var factory = new BrowserCapabilitiesFactory();
factory.ConfigureBrowserCapabilities(new NameValueCollection(), browser);
Funziona! Grazie! –
Grazie anche a questo ho risolto il mio problema! –
Voglio eseguire questo al di fuori di un ambiente asp.net (analisi dei file di registro). Non sembra che sia in grado di determinare molto bene il tipo e la versione dell'agente. "Mozilla/5.0 + (Windows + NT + 6.1) + AppleWebKit/537.36 + (KHTML, + come + Gecko) + Chrome/37.0.2062.120 + Safari/537.36" = Chrome 37, ma "Mozilla/4.0 + (compatibile; + MSIE 7.0 +; + Windows + NT + 6,1; + Trident/4.0; + SLCC2;. + NET + CLR + 2.0.50727;. + NET + CLR + 3.5.30729;. + NET + CLR + 3.0.30729; + Media + Centro + PC + 6.0; +. NET4.0C; +. NET4.0E; + InfoPath.3; + SynapseWorkstation.3.2.1; + MS-RTC + LM + 8; + Tablet + PC + 2.0) "= Mozilla. – Jeremy
che tipo di richiesta di pagina che si desidera catturare ???? specialmente dall'app console? –
Nessuna richiesta di pagina. Ho una lista di user agent in un file di testo e voglio analizzare Browser, Version, OS e un altro paio di cose - tutto ciò sarebbe stato disponibile tramite Request.Browser, ma ora sto provando a farle ottenere un'app console e un elenco di stringhe UserAgent. –