Dra*_*vuk 5 c# stream httpwebrequest
哪种方式更受欢迎?
A:
HttpWebRequest req = (HttpWebRequest)WebRequest.Create(url);
Stream reqStream = req.GetRequestStream();
reqStream.Write(data, 0, data.Length);
reqStream.Close();
Run Code Online (Sandbox Code Playgroud)
B:
HttpWebRequest req = (HttpWebRequest)WebRequest.Create(url);
req.GetRequestStream().Write(data, 0, data.Length);
Run Code Online (Sandbox Code Playgroud)
Jon*_*eet 13
选项C代替:
HttpWebRequest req = (HttpWebRequest)WebRequest.Create(url);
using (Stream reqStream = req.GetRequestStream())
{
reqStream.Write(data, 0, data.Length);
}
Run Code Online (Sandbox Code Playgroud)
但是,我会关闭请求流.它可能不是绝对必需的,但我不想假设 - 特别是,除非你有充分的理由相信它不是必需的(例如文档),否则实现可能会随着时间的推移而改变并打破"懒惰"代码后来.
如果你发现自己经常这样做,你总是可以写一个实用工具方法(甚至可能作为扩展方法):
public static void WriteRequestData(this WebRequest request, byte[] data)
{
using (Stream reqStream = request.GetRequestStream())
{
reqStream.Write(data, 0, data.Length);
}
}
Run Code Online (Sandbox Code Playgroud)
然后将其称为:
HttpWebRequest req = (HttpWebRequest)WebRequest.Create(url);
req.WriteRequestData(data);
Run Code Online (Sandbox Code Playgroud)