J'utilise les lignes de code suivantes pour lire la réponse d'un HttpWebRequest asynchrone. Cela semble être la plus grande quantité de temps passé dans une opération particulière. Y a-t-il quelque chose que je peux optimiser ici?Optimisation de HttpWebResponse - GetResponse
System.Net.HttpWebResponse oResp =(System.Net.HttpWebResponse)oReq.EndGetResponse(oResult);
oResp = (HttpWebResponse)oReq.GetResponse();
StreamReader oStreamReader = new StreamReader(oResp.GetResponseStream());
string sResponse = oStreamReader.ReadToEnd();
... va à faire un XmlDocument, ajoutez un peu plus à XML, puis effectuer une transformation XSL.
Création des liaisons:
HttpWebRequest oReq;
oReq = (HttpWebRequest)WebRequest.Create(sUrl + sQueryString);
oReq.ContentType = sContentType;
oReq.Method = "POST";
oReq.ContentLength = aBytes.Length;
Stream oStream = oReq.GetRequestStream();
oStream.Write(aBytes, 0, aBytes.Length);
oStream.Close();
AsyncState oState = new AsyncState(oReq);
return oReq.BeginGetResponse(fCallBack, oState);
Pour répondre à cette question, vous devez collecter plus d'informations. Le délai se produit-il sur le client ou le serveur? Vous avez mentionné que vous devez créer un document XML: le serveur génère-t-il ce document à la volée ou sert-il un document à partir du disque? Passez-vous par un proxy? Utilisez-vous l'authentification? Utilisez-vous les connexions Tcp keep alive? En relation avec ceci, est-ce que cette demande est faite dans une boucle, ou est-ce une application unique qui fait juste cette demande et se termine? Afficher votre extrait de code de la façon dont vous créez votre demande. Et nous pouvons aller plus loin à partir de là .. – feroze
Aussi, pourquoi appelez-vous EndGetResponse(), puis GetResponse() à nouveau? Ce n'est pas une utilisation correcte de l'API. – feroze
Plus d'informations: Le serveur génère le fichier XML à la volée. Je n'utilise pas de proxy. Les appels sont authentifiés. Les connexions ne sont pas conservées. Les connexions sont uniques, pas plus d'une connexion est établie par charge. J'ai ajouté ci-dessus comment la requête est créée. – aepheus