J'ai besoin d'une requête Http que je peux utiliser dans .Net qui prend moins de 100 ms. Je suis capable d'y parvenir dans mon navigateur, donc je ne vois vraiment pas pourquoi c'est un problème de code.Comment obtenir une demande HTTP rapide .Net
J'ai essayé WinHTTP ainsi que WebRequest.Create et les deux sont plus de 500ms ce qui n'est pas acceptable pour mon cas d'utilisation.
Voici des exemples du test simple que j'essaie de faire passer. (WinHttpFetcher est un simple wrapper que j'ai écrit, mais il est l'exemple le plus trivial d'une demande Get que je ne suis pas sûr que ça vaut la peine de coller.)
J'obtiens des résultats acceptables avec LibCurlNet mais s'il y a des utilisations simultanées la classe I obtient une violation d'accès. De plus, comme ce n'est pas du code managé et qu'il doit être copié dans le répertoire bin, il n'est pas idéal de le déployer avec mon projet open source.
Des idées d'une autre implémentation à essayer?
[Test]
public void WinHttp_Should_Get_Html_Quickly()
{
var fetcher = new WinHttpFetcher();
var startTime = DateTime.Now;
var result = fetcher.Fetch(new Uri("http://localhost"));
var endTime = DateTime.Now;
Assert.Less((endTime - startTime).TotalMilliseconds, 100);
}
[Test]
public void WebRequest_Should_Get_Html_Quickly()
{
var startTime = DateTime.Now;
var req = (HttpWebRequest) WebRequest.Create("http://localhost");
var response = req.GetResponse();
var endTime = DateTime.Now;
Assert.Less((endTime - startTime).TotalMilliseconds, 100);
}
Le problème n'est pas HttpWebRequest. Je reçois généralement des demandes dans environ 13ms se connectant à localhost. Êtes-vous sûr que ce n'est pas le serveur? –