我正在编写这个简短的模块,我必须使用PUT方法修改已寻址的资源。我正在使用WebRequest
类来发出此URI请求,使用GetRequestStream()
来获取要写入的流。
但是,似乎经过几次成功的方法调用(并使用PUT修改资源)通过下面的方法,我的应用程序挂起然后抛出WebException: The request timed out.
错误。这是代码的样子:
public void SendOffMessageToResource(int res_ID){
var httpWebRequest = WebRequest.Create ("http://192.168.x.x/api/sample_user/resources/1/state");
httpWebRequest.ContentType = "application/json";
httpWebRequest.Method = "PUT";
using (var streamWriter = new StreamWriter(httpWebRequest.GetRequestStream())) //here's where the VS seems to take a long long time to step over to the next line when the error happens.
{
string json = "{\"on\":false}";
streamWriter.Write(json);
streamWriter.Close();
}
}
我已经处理了StreamWriter。我甚至没有使用GetResponse()
方法,因为我需要对此URI执行的操作实际上是使用PUT
方法修改已寻址的资源。我不知道为什么它仍然会抛出错误并挂起应用程序。对先前线程的搜索仅显示人们应该使用using
语句来处理资源,但我已经在做我认为或者我错过了什么?我是否始终需要使用GetResponse()
来完成请求并始终处理此请求?
答案 0 :(得分:0)
我是否总是需要使用GetResponse()来完成请求并除此之外一直处理该请求?
是的,就是这样。