J'essaie d'écrire des données sur un controller
en utilisant rest api
.Windows Ce Compact Framework HttpWebRequest
Mais quelque chose d'étrange se produit. Les premières 1, 2, 3 écritures sont bien, mais que l'application se fige et obtient des exceptions de délai d'attente suis-je ne ferme pas quelque chose?
Ceci est le code
ci-dessous:
WebRequest client = (read) ? HttpWebRequest.Create(ReadUri) : HttpWebRequest.Create(WriteUri);
client.Method = "POST";
client.ContentType = "application/json";
CredentialCache creds = new CredentialCache();
creds.Add(new Uri(WriteUri), "Basic", new NetworkCredential(*******));
client.Credentials = creds;
client.PreAuthenticate = true;
((HttpWebRequest)client).AllowWriteStreamBuffering = true;
client.Timeout = 10000;
//Skipped all data formatting
byte[] data = Encoding.UTF8.GetBytes(req);
client.ContentLength = data.Length;
Stream dataStream = null;
try
{
//HttpWebResponse response = (HttpWebResponse)client.GetResponse();
dataStream = client.GetRequestStream();
dataStream.Write(data, 0, data.Length);
dataStream.Flush();
dataStream.Close();
dataStream.Dispose();
dataStream = null;
}
catch (WebException we)
{
string message = we.Message;
}
finally
{
client = null;
}
Vous devriez probablement obtenir la réponse (après avoir écrit dans le flux de demandes) et la disposer pour libérer la demande de la connexion. Sinon, il conserve les données de réponse jusqu'à ce que vous décidiez de les lire. Définir 'client' à' null' ne libère rien (pas immédiatement, de toute façon). –
J'ai essayé d'écouter la réponse et a travaillé :) merci pour cela! Si vous faites une réponse, je voterai pour vous sinon je le ferai. – Combinu