Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/322.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/joomla/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# Windows Ce Compact Framework HttpWebRequest_C#_Httpwebrequest_Compact Framework_Windows Ce - Fatal编程技术网

C# Windows Ce Compact Framework HttpWebRequest

C# Windows Ce Compact Framework HttpWebRequest,c#,httpwebrequest,compact-framework,windows-ce,C#,Httpwebrequest,Compact Framework,Windows Ce,我正在尝试使用restapi在控制器上写入一些数据 但奇怪的事情正在发生。前1、2、3次写入都很好,但应用程序会冻结并超时异常我是否没有关闭某些东西 这是下面的代码: WebRequest client = (read) ? HttpWebRequest.Create(ReadUri) : HttpWebRequest.Create(WriteUri); client.Method = "POST"; client.ContentType = "a

我正在尝试使用
restapi
控制器上写入一些数据

但奇怪的事情正在发生。前1、2、3次写入都很好,但应用程序会冻结并超时异常我是否没有关闭某些东西

这是下面的
代码

        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
s

...
dataStream.Close();
dataStream.Dispose();
dataStream = null;
using (HttpWebResponse response = (HttpWebResponse)client.GetResponse())
{
}

发送请求后,您应该处理响应并进行处理。如果不这样做,则在引擎盖下,请求及其响应将与连接保持关联,并且.NET默认情况下只有少数连接可用于
WebRequest
s

...
dataStream.Close();
dataStream.Dispose();
dataStream = null;
using (HttpWebResponse response = (HttpWebResponse)client.GetResponse())
{
}

您可能应该(在写入请求流之后)获得响应,并对其进行处理以从连接中释放请求。否则,它将保留响应数据,直到您决定从中读取。将
client
设置为
null
不会释放任何内容(无论如何,不会立即释放)。我尝试倾听响应并工作:)谢谢!如果您做出回答,我将投您一票,否则我将投您一票。您可能应该得到响应(在写入请求流之后)并将其处理以从连接中释放请求。否则,它将保留响应数据,直到您决定从中读取。将
client
设置为
null
不会释放任何内容(无论如何,不会立即释放)。我尝试倾听响应并工作:)谢谢!如果你回答,我会投你一票,否则我会投你一票。