Stworzyłem aplikację, która może uzyskiwać dostęp i kontrolować kamery Onvif, które dobrze sobie radzi. Jest to jednak moja pierwsza aplikacja, która korzysta z takich żądań internetowych (lub wcale), więc zakładam, że prawdopodobnie używam dość podstawowych technik. Część kodu Jestem ciekaw to:Sposoby przyspieszenia WebRequests?
Uri uri = new Uri(
String.Format("http://" + ipAddr + "/onvif/" + "{0}", Service));
WebRequest request = WebRequest.Create((uri));
request.Method = "POST";
byte[] b = Encoding.ASCII.GetBytes(PostData);
request.ContentLength = b.Length;
//request.Timeout = 1000;
Stream stream = request.GetRequestStream();
//Send Message
XmlDocument recData = new XmlDocument();
try
{
using (stream = request.GetRequestStream())
{
stream.Write(b, 0, b.Length);
}
//Store response
var response = (HttpWebResponse) request.GetResponse();
if (response.GetResponseStream() != null)
{
string responsestring = new
StreamReader(response.GetResponseStream())
.ReadToEnd();
recData.LoadXml(responsestring);
}
}
catch (SystemException e)
{
MessageBox.Show(e.Message);
}
return recData;
}
Kod działa poprawnie, jednak za pomocą sprawozdań WriteLine Odkryłem, że pierwszy wniosek trwa około 400ms do ukończenia natomiast tylko kolejne z nich trwa od 10 - 20 ms. Czy jest coś, co mogę zrobić, aby przyspieszyć pierwszą prośbę?
To dobry link. Ustawienie request.Proxy na null powinno pomóc w pierwszej prośbie. –