2014-09-07 12 views
5

Używam biblioteki Twittera, która wewnętrznie używa HttpWebRequest do wysyłania żądań do API Twittera. Z jakiegoś dziwnego powodu, ich wykonanie czasem zajmuje dużo czasu (~ 10 minut).Jak określić globalny limit czasu HttpWebRequest?

Obiekt HttpWebRequest nie jest udostępniany przez bibliotekę.

Czy istnieje sposób na określenie globalnego limitu czasu i czasu odczytu dla żądań, być może poprzez app.config?

Odpowiedz

-2

Ten limit czasu jest w milisekundach - czyli 2000ms = tylko 2 sekundy.

System.Net.HttpWebRequest req = (System.Net.HttpWebRequest)System.Net.WebRequest.Create("URL"); 
req.Timeout = Convert.ToInt32(ConfigurationManager.AppSettings["timeOut"]); 
Req.ReadWriteTimeout = Convert.ToInt32(ConfigurationManager.AppSettings["readWriteTimeout "]); 

App.config

<appSettings> 
<add key="timeOut" value="200" /> 
<add key="readWriteTimeout " value="10000" /> 
</appSettings> 

Timeout = czas spędzony próbuje nawiązać połączenie (nie wliczając czasu odnośników)

ReadWriteTimeout = czas spędzony próby odczytu lub zapisu danych po nawiązaniu połączenia

+1

Dzięki, ale jak wspomniano w pytaniu, nie mam dostępu do obiektu 'req'. – imlokesh

2

Niestety obecnie nie jest to możliwe. Konstruktor HttpWebRequest ma tę wartość zakodowaną na stałe - reference source.