Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
0 / 0 / 0
Регистрация: 12.03.2013
Сообщений: 151

Асинхронный запрос статус кода сайтов

15.07.2022, 12:00. Показов 418. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте, есть вот такой вот кусок кода, каким образом можно сделать его асинхронным, чтобы код выполнялся одновременно, но и при этом, не было ложных ответов, типо с переполнением буфера или что-то типо того.

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
public static Dictionary<int,string> testSite(string url, string text)
        {
 
            Uri uri = new Uri(url);
            Console.WriteLine(url);
            var result = new Dictionary<int,string>();
            try
            {
                HttpWebRequest httpWebRequest = (HttpWebRequest)HttpWebRequest.Create(uri);
                HttpWebResponse httpWebResponse = (HttpWebResponse)httpWebRequest.GetResponse();
                result.Add((int)httpWebResponse.StatusCode, httpWebResponse.StatusCode.ToString());
                string connStr = "server=localhost;user=root;database='database';port=3306;password='root'";
                MySqlConnection conn = new MySqlConnection(connStr);
                try
                {
                    Console.WriteLine("Connecting to MySQL...");
                    conn.Open();
                    Console.WriteLine((int)httpWebResponse.StatusCode);
                    Console.WriteLine(httpWebResponse.StatusCode);
                    string sql = "UPDATE sites SET status = '" + (int)httpWebResponse.StatusCode + "', code = '" + httpWebResponse.StatusCode + "' WHERE url = '" + text + "'";
                    MySqlCommand cmd = new MySqlCommand(sql, conn);
                    cmd.ExecuteNonQuery();
                }
                catch (Exception ex)
                {
                    Console.WriteLine(ex.ToString());
                }
 
                conn.Close();
            }
            catch (WebException e)
            {
                Console.WriteLine(e.Status);
                if (e.Status == WebExceptionStatus.ProtocolError)
                {
                    // Console.WriteLine(((HttpWebResponse)e.Response).StatusCode);
                    string connStr = "server=localhost;user=root;database='database';port=3306;password='root'";
                    MySqlConnection conn = new MySqlConnection(connStr);
                    try
                    {
                        Console.WriteLine("Connecting to MySQL...");
                        conn.Open();
                        Console.WriteLine((int)((HttpWebResponse)e.Response).StatusCode);
                        Console.WriteLine(((HttpWebResponse)e.Response).StatusCode);
                        string sql = "UPDATE sites SET status = '"+ (int)((HttpWebResponse)e.Response).StatusCode + "', code = '"+ ((HttpWebResponse)e.Response).StatusCode+"' WHERE url = '"+ text +"'";
                        MySqlCommand cmd = new MySqlCommand(sql, conn);
                        cmd.ExecuteNonQuery();
                    }
                    catch (Exception ex)
                    {
                        Console.WriteLine(ex.ToString());
                    }
 
                    conn.Close();
                }
            }
            foreach (var person in result)
            {
                Console.WriteLine($"key: {person.Key}  value: {person.Value}");
            }
            return result;
        }
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
15.07.2022, 12:00
Ответы с готовыми решениями:

Асинхронный запрос XmlDocument и пополнение бд из кода
Добрый день, у меня такое задание: сделать сайт, который тянет xml документ (ну типа этого...

Проверка сайтов на статус
Здравствуйте, использую текстовый файл с доменами сайтов, мне нужно получить их статус коды, сайтов больше миллиона, вопрос, как мне...

Асинхронный запрос
&lt;form action=&quot;reg.php&quot; method=&quot;post&quot;&gt; &lt;fieldset&gt; &lt;legend&gt;Товары фирмы:&lt;/legend&gt; &lt;input type=&quot;hidden&quot;...

4
403 / 265 / 69
Регистрация: 12.04.2020
Сообщений: 1,404
15.07.2022, 12:12
C#
1
Task.Run(()=> ваш код);
0
Эксперт .NET
 Аватар для kolorotur
17823 / 12973 / 3382
Регистрация: 17.09.2011
Сообщений: 21,261
15.07.2022, 12:24
Цитата Сообщение от Мello Посмотреть сообщение
C#
1
WHERE url = '" + text + "'";
Поколения меняются, а грабли все те же

C#
1
testSite("https://google.com", "' or 1=1; drop table sites; --")
0
0 / 0 / 0
Регистрация: 12.03.2013
Сообщений: 151
15.07.2022, 12:36  [ТС]
Если претензия к SQL инъекциям, то я не обернул их, потому что потому, а если серьезно, то просто это локально использоваться будет и нужно сделать как можно быстрее.

А если претензия в чем-то другом, то хотел бы услышать пояснение.

Сделал так, и теперь консоль падает примерно через секунд 10-20, видимо поток переполняется, вопрос как это исправить, чтобы работа продолжалась?
C#
1
Task.Run(()=> ваш код);
0
403 / 265 / 69
Регистрация: 12.04.2020
Сообщений: 1,404
15.07.2022, 12:41
Цитата Сообщение от kolorotur Посмотреть сообщение
Поколения меняются, а грабли все те же
ну че вы душите

Добавлено через 5 минут
C#
1
2
3
4
5
public static Task<Dictionary<int,string>> testSite(string url, string text)
{
     return Task.Run(()=> ваш код);
}
var result = await testSite("штота","штота2");
и где тут что валиться?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
15.07.2022, 12:41
Помогаю со студенческими работами здесь

Асинхронный запрос
Запрашиваю данные с БД, потом экспортирую, и когда испортирую в другой файл, то приходит promise. Как сделать, чтобы не promise приходил, а...

Асинхронный запрос
Собственно делаю таким образом: обычный не асинхронный запрос заворачиваю в обертку из Task.Run public async Task GetModel() { ...

Асинхронный запрос. Помогите...
Задача такая: Большой набор записей (&gt;1000)должен отображаться в Gride (VSFlexGrid), но не весь, а постепенно, т.е. загрузилась форма...

Асинхронный запрос к серверу
Добрый день. Я использую функцию Request для связи клиента с сервером. string result =...

Асинхронный запрос SOAP
Подскажите пожалуйста как можно данный код вызвать асинхронно? from suds.client import Client url =...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие. Ссылка в Linux — это дополнительная запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая. . .
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора ВВЕДЕНИЕ Выполняя задание на управление насосной группой заполнения резервуара,. . .
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru