Opzione C invece:
HttpWebRequest req = (HttpWebRequest)WebRequest.Create(url);
using (Stream reqStream = req.GetRequestStream())
{
reqStream.Write(data, 0, data.Length);
}
Ma sì, io avrei chiudere il flusso di richiesta. È possibile che non è assolutamente necessario, ma non vorrei assumere che - e in particolare, a meno che non abbiate buone ragioni per credere che sia non richiesto (come la documentazione), l'implementazione potrebbe cambiare nel tempo e rompersi codice "pigro" più tardi.
Se vi trovate a fare questo, spesso, si può sempre scrivere un metodo di utilità (forse anche come un metodo di estensione):
public static void WriteRequestData(this WebRequest request, byte[] data)
{
using (Stream reqStream = request.GetRequestStream())
{
reqStream.Write(data, 0, data.Length);
}
}
Poi basta chiamare come:
HttpWebRequest req = (HttpWebRequest)WebRequest.Create(url);
req.WriteRequestData(data);
fonte
2012-08-19 08:30:57