[英]Windows Ce Compact Framework HttpWebRequest
我试图使用rest api
在controller
上写一些数据。
但是奇怪的事情正在发生。 前1、2、3次写入很好,但是比应用程序冻结并获得超时异常时,我是否未关闭某些内容?
这是下面的code
:
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;
}
发送请求后,应处理响应并进行处理。 如果您不这样做,那么请求及其响应仍将与连接保持关联,并且.NET默认情况下仅具有几个可用于WebRequest
的连接。
...
dataStream.Close();
dataStream.Dispose();
dataStream = null;
using (HttpWebResponse response = (HttpWebResponse)client.GetResponse())
{
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.