Envoyé une requete à un serveur et attendre une réponse
bjrttlemonde
Messages postés17Date d'inscriptionlundi 14 avril 2008StatutMembreDernière intervention 7 juillet 2010
-
10 juin 2010 à 11:48
BunoCS
Messages postés15472Date d'inscriptionlundi 11 juillet 2005StatutModérateurDernière intervention25 mars 2024
-
10 juin 2010 à 16:52
Bonjour tout le monde,
Etant débutante en c# .net je cherche à envoyé une requête à un serveur et recevoir une réponse voici la méthode que j'utilise mais malheureusement elle marche pas
public static void FaireUneDemande(string URL)
{
try
{
//Créer la requête HTTP
HttpWebRequest req = (HttpWebRequest)WebRequest.Create(URL);
req.Method = "GET";
//Supprimer le suivi de la redirection automatique
req.AllowAutoRedirect = false;
//Mettre les données dans le corps de la requête
string data = Configuration.VersionMiniMax + ";" + Configuration.Nim;
req.ContentLength = data.Length;
//Ecriture Des données
Stream reqout = req.EndGetRequestStream(req.BeginGetRequestStream(new AsyncCallback(AsyncRequestWriter), null));
StreamWriter wri = new StreamWriter(reqout, Encoding.GetEncoding(850));
wri.Write(data);
wri.Close();
reqout.Close();
//Excecution de la requete
HttpWebResponse res = (HttpWebResponse)req.GetResponse();
switch (res.StatusCode)
{
default:
Stream resin = res.GetResponseStream();
StreamReader rea = new StreamReader(resin, Encoding.GetEncoding(850));
rea.Close();
resin.Close();
break;
}
//Ferme la réponse
res.Close();
}
catch (Exception e)
{
Log.logException("Comparaison version avec le serveur", e);
}
}
private static void AsyncRequestWriter(IAsyncResult asynchronousResult)
{
HttpWebRequest request = (HttpWebRequest)asynchronousResult.AsyncState;
// End the operation
Stream postStream = request.EndGetRequestStream(asynchronousResult);
Console.WriteLine("Please enter the input data to be posted:");
string postData = Console.ReadLine();
// Convert the string into a byte array.
byte[] byteArray = Encoding.UTF8.GetBytes(postData);
// Write to the request stream.
postStream.Write(byteArray, 0, postData.Length);
postStream.Close();
// Start the asynchronous operation to get the response
request.BeginGetResponse(new AsyncCallback(GetResponseCallback), request);
}
private static void GetResponseCallback(IAsyncResult asynchronousResult)
{
HttpWebRequest request = (HttpWebRequest)asynchronousResult.AsyncState;
// End the operation
HttpWebResponse response = (HttpWebResponse)request.EndGetResponse(asynchronousResult);
Stream streamResponse = response.GetResponseStream();
StreamReader streamRead = new StreamReader(streamResponse);
string responseString = streamRead.ReadToEnd();
Console.WriteLine(responseString);
// Close the stream object
streamResponse.Close();
streamRead.Close();
// Release the HttpWebResponse
response.Close();
allDone.Set();
}