C # – Come effettuare una chiamata HTTP

Volevo effettuare una chiamata HTTP a un sito Web. Devo solo premere l’URL e non voglio caricare o scaricare alcun dato. Qual è il modo più semplice e veloce per farlo.

Ho provato sotto il codice, ma è lento e dopo la seconda richiesta ripetitiva va in timeout per 59 secondi e poi riprende:

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(); 

Sta usando il WebClient più efficiente ??

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

Sto usando .NET ver 3.5

Ci sono cose extra lì dentro se stai solo provando a chiamare un sito web. Tutto ciò di cui hai bisogno è:

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

Se non si desidera attendere una risposta, è ansible consultare BeginGetResponse per renderlo asincrono.

Se non vuoi caricare alcun dato dovresti usare:

 webRequest.Method = "GET"; 

Se davvero non ti importa di ottenere alcun dato (ad esempio se vuoi solo verificare se la pagina è disponibile) usa:

 webRequest.Method = "HEAD"; 

In entrambi i casi, invece di webRequest.GetRequestStream() utilizzare:

 WebResponse myWebResponse = webRequest.GetResponse(); 

WebClient è una syntax più breve e concisa ma dietro le quinte utilizza un WebRequest, quindi in termini di prestazioni non sarà più veloce, sarà equivalente. Se vuoi che sia più veloce dovrai migliorare lo script lato server o la tua infrastruttura di rete. Il problema non è dal lato del cliente.