Bonjour,
Je me résouds à poster une question car mes multiples recherhes n'ont rien données.
Voilà mon problème. Depuis une application serveur que je développe actuellement, je dois envoyé des fichiers via HTTP sur un server distant. Jusque la tout va bien...
Pour se faire j'ai déclaré un objet HttpWebRequest, définis l'ensemble de ses propriétés dont le tiemout et ensuite je récupère la réponse via MonObjet.GetResponse(). La c'est encore bon...
Mais mon problème intervient sur l'envoi de gros fichiers. Le serveur distant renvoyant toujours 100 (cad continuer...) à l'échéance du timeout, l'appli passe en erreur.
Mon problème est que mon cahier des charges ne me permet pas d'accroitre indéfiniment le timeout (un serveur planté pourrait dans certains cas faire attendre l'appli serveur trop longtemps (enfin je crois)).
Une fois GetResponse invoqué, la requete ne peut pas être relancée, alors comment faire.
Je reussis à voir si l'envoi est toujours en cours comme ceci :
// Gestion de la réponse
try{
WebResponse v_wr = req.GetResponse();if (((HttpWebResponse)v_wr).StatusCode == HttpStatusCode.OK)bResult =
true;Stream v_s = v_wr.GetResponseStream();// Gestion de l'encodage de la réponseEncoding v_encode = System.Text.Encoding.GetEncoding("utf-8");StreamReader v_sr = newStreamReader(v_s, v_encode);// Dépose les données dans la valeur de retourv_result = v_sr.ReadToEnd();
v_sr.Close();
v_wr.Close();
v_s.Close();
}
catch (WebException wex){
if (!req.Expect.Substring(0, 3) == "100")
{ //Attend la fin de l'envoi }}
Mais je n'ai trouvé aucun moyen pour avoir la confirmation que le fichier soit bien arrivé.
J'ai commencé à m'interresser a l'envoi asynchrone et même si les possibilités sont plus larges au niveau de l'exploitation de la réponse serveur, je n'ai pas trouvé la solution...

Un grand merci d'avance,
Eric