Рабочий стол GNOME для Linux записан в объектно-ориентированном C, и это имеет объектную модель, названную" GObject", который поддерживает свойства, наследование, полиморфизм, а также некоторых других положительных героев как ссылки, обработка событий (названный "сигналами"), ввод времени выполнения, частные данные, и т.д.
Это включает взломы препроцессора, чтобы сделать вещи как преобразование типа вокруг в иерархии классов и т.д. Вот класс в качестве примера, который я записал для GNOME (вещами как gchar являются определения типов):
Внутренняя часть структура GObject там является целым числом GType, которое используется в качестве магического числа для системы динамического контроля типов GLIB (можно бросить всю структуру к "GType", чтобы найти, что это - тип).
Я думаю, что на сайте есть какая-то защита DOS, которая срабатывает, когда на него поступает ряд запросов изнасилования. Вы можете попробовать установить UserAgent в веб-запросе.
Сегодня я столкнулся с этой проблемой, и мое решение состояло в том, чтобы гарантировать, что ответ будет всегда закрыт.
Я думаю, что вам нужно ввести response.Close (), прежде чем вы выбросите свое исключение внутри использования.
Using response As HttpWebResponse = DirectCast(request.GetResponse, HttpWebResponse)
Using dataStream As Stream = response.GetResponseStream()
Using reader As New StreamReader(dataStream)
If response.StatusCode <> HttpStatusCode.OK Then
response.Close()
Throw New Exception("Got response status code: " + response.StatusCode)
End If
result = reader.ReadToEnd()
End Using
End Using
response.Close()
End Using