使用流写器的正确方法是什么?steamreader
本文关键字:方法 是什么 steamreader | 更新日期: 2023-09-27 18:12:03
我进入了未知的领域-我必须第一次创建一个httppost (xml)。我已经看了很多例子,但坦率地说,这对一个新手来说有点令人困惑。
我目前正在处理的函数是:
public string SubmitRequest(string postUrl, string contentType, string postValues)
{
var req = WebRequest.Create(postUrl);
req.Method = "POST";
req.ContentType = contentType;
try
{
using (var reqStream = req.GetRequestStream())
using (var writer = new StreamWriter(reqStream))
{
writer.WriteLine(postValues);
}
var resp = req.GetResponse();
using (var respStream = resp.GetResponseStream())
using (var reader = new StreamReader(respStream))
{
return reader.ReadToEnd().Trim();
}
}
catch(WebException ex)
{
// do something here
}
return string.Empty;
}
我想我有两个问题:
代码在正确处理/关闭对象方面是否正确?这是最有效的方式来写我的httppost给我使用asp.net 4.0?
Thanks in advance
代码在正确处理/关闭对象方面是否正确?
。您正在正确关闭流,但没有关闭Reader和Writer对象。如果有任何类型的缓冲,这里可能会丢失数据。
更好的方法:
using (var reqStream = req.GetRequestStream())
using (var writer = new StreamWriter(reqStream))
{
writer.WriteLine(postValues);
}
Reader也是如此。注意,这是嵌套2个using
块,缩进有点不典型,但很实用。
这是写我的httppost给我使用asp.net 4.0最有效的方式吗?
。
- 使用
WebClient
代码较少。看到这里。 - 使用异步方法来提高性能(在c# 5中更容易)