web-dev-qa-db-fra.com

C # - Comment faire un appel HTTP

Je voulais passer un appel HTTP vers un site Web. J'ai juste besoin de cliquer sur l'URL et je ne veux pas télécharger ou télécharger de données. Quel est le moyen le plus simple et le plus rapide de le faire.

J'ai essayé le code ci-dessous mais son lent et après la 2ème demande répétitive, il passe juste en timeout pendant 59 secondes et reprend:

WebRequest webRequest = WebRequest.Create("http://ussbazesspre004:9002/DREADD?" + fileName);
webRequest.Method = "POST";
webRequest.ContentType = "application/x-www-form-urlencoded";
webRequest.ContentLength = fileName.Length;

Stream os = webRequest.GetRequestStream();
os.Write(buffer, 0, buffer.Length);
os.Close();

L'utilisation du WebClient est-elle plus efficace ??

WebClient web = new WebClient();
web.UploadString(address);

J'utilise .NET ver 3.5

27
Mayur J

Vous avez des informations supplémentaires si vous essayez d'appeler un site Web. Tout ce dont vous avez besoin est:

WebRequest webRequest = WebRequest.Create("http://ussbazesspre004:9002/DREADD?" + fileName);
WebResponse webResp = webRequest.GetResponse();

Si vous ne voulez pas attendre une réponse, vous pouvez regarder BeginGetResponse pour la rendre asynchrone.

48
Doozer Blake

Si vous ne souhaitez pas télécharger de données, vous devez utiliser:

webRequest.Method = "GET";

Si vous ne vous souciez vraiment pas de récupérer des données (par exemple, si vous voulez simplement vérifier si la page est disponible), utilisez:

webRequest.Method = "HEAD";

Dans les deux cas, au lieu de webRequest.GetRequestStream() utilisez:

WebResponse myWebResponse = webRequest.GetResponse();
10
Waylon Flinn

WebClient est une syntaxe plus courte et plus concise, mais en arrière-plan, elle utilise une WebRequest, donc en termes de performances, elle ne sera pas plus rapide, elle sera équivalente. Si vous voulez qu'il soit plus rapide, vous devrez améliorer le script côté serveur ou votre infrastructure réseau. Le problème n'est pas du côté client.

5
Darin Dimitrov