Я пишу этот короткий модуль, где мне нужно изменить адресный ресурс с помощью метода PUT. Я использую класс WebRequest
, чтобы сделать этот запрос URI и GetRequestStream()
, чтобы получить поток для записи. Однако, кажется, что после нескольких успешных вызовов метода (и использования PUT для изменения ресурсов) с помощью этого метода ниже мое приложение зависает, а затем выдает ошибку WebException: The request timed out.
. Вот как выглядит код:WebRequest - исключение GetRequestStream с исключением
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()
для выполнения запроса и распоряжаться этим всегда в дополнение к этому?