Прежде всего: я не умею «говорить» на C#, но немного знаю, как работает этот язык программирования.
О Strong>
Я пытаюсь реализовать скрипт C# в системе видеонаблюдения Genetec Makro. Он должен отправить HTTPS-GET-запрос для изменения параметра на сервере.
Сборка
Я нахожусь в отдельной VLAN без Интернета. Связь. Я предполагаю, что у него есть прокси, который позволяет пройти этому URL. URL-адрес прекрасно работает в браузере.
Проблема
Проявляется следующим образом: я могу запустить скрипт, и он работает. Когда я запускаю его снова позже, он ничего не делает. (Может быть, это сработает в любое время позже, но я не смог это подтвердить)
Код состоит из того, что последний человек оставил после ухода, и некоторой помощи ChatGPT. ChatGPT добавил случайный параметр. Я реализовал это, потому что человек, создавший аналог (URL-сторона), сказал, что это может быть проблема с кэшем прокси.
Вопросы strong>
Есть ли проблема в коде?
Нужно ли мне что-то добавить, чтобы он работал лучше/безопаснее?
using System.Net;
using System.IO;
using Genetec.Sdk;
using Genetec.Sdk.Entities;
using Genetec.Sdk.Enumerations;
using Genetec.Sdk.Queries;
using Genetec.Sdk.Scripting;
using Genetec.Sdk.Scripting.Interfaces.Attributes;
using System;
[MacroParameters()]
public sealed class myMacro : UserMacro
{
///
/// Entry point of the macro. Provide an implementation of this method.
///
public override void Execute()
{
// Generiere einen zufälligen Wert für rand
string randomValue = GenerateRandomValue();
// Ersetze den festen Wert von rand in der URL mit dem zufälligen Wert
string url = "https://ANYURL.com/cgi-bin/control2.php ... m5=0&rand=" + randomValue;
WebRequest wrGETURL;
wrGETURL = WebRequest.Create(url);
System.IO.Stream objStream;
objStream = wrGETURL.GetResponse().GetResponseStream();
}
///
/// Generiert einen zufälligen alphanumerischen String.
///
/// Zufälliger String.
private string GenerateRandomValue()
{
const string chars = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
Random random = new Random();
return new string(Enumerable.Repeat(chars, 10).Select(s => s[random.Next(s.Length)]).ToArray());
}
///
/// Called when the macro needs to clean up.
///
protected override void CleanUp()
{
// Release objects created by the Execute method, unhook events, and so on.
}
}
Примечание: ANYURL и ENTER_KEY вставлены в готовый код. извините, я не могу их опубликовать.
Что я пробовал
Я добавил случайную часть в URL-адрес, чтобы быть уверенным, что с ним нет проблем. прокси-кеш. Я спросил в чате, что может быть не так. Я проверил большую часть этого (мне пока не удалось полностью проверить, что брандмауэр разрешает каждый запрос, но когда он работает в браузере, он также должен работать непосредственно из Центра безопасности/Genetec)
Найдено решение i(ChatGPT):
using System;
//using System.IO;
using System.Net;
//using Genetec.Sdk;
//using Genetec.Sdk.Entities;
//using Genetec.Sdk.Enumerations;
//using Genetec.Sdk.Queries;
using Genetec.Sdk.Scripting;
using Genetec.Sdk.Scripting.Interfaces.Attributes;
[MacroParameters()]
public sealed class myMacro : UserMacro
{
///
/// Entry point of the macro. Provide an implementation of this method.
///
public override void Execute()
{
try
{
string url = "https://ANYURL.com/cgi-bin/control2.php ... KEY&cam5=1";
WebRequest wrGETURL = WebRequest.Create(url);
using (WebResponse response = wrGETURL.GetResponse())
using (System.IO.Stream objStream = response.GetResponseStream())
{
// Process the response stream here
}
}
catch (Exception ex)
{
// Log or handle the exception appropriately
Console.WriteLine($"An error occurred: {ex.Message}");
}
}
///
/// Called when the macro needs to clean up.
///
protected override void CleanUp()
{
// Release objects created by the Execute method, unhook events, and so on.
}
}
Подробнее здесь: https://stackoverflow.com/questions/780 ... t-finished
Есть ли в этом коде очевидные ошибки, например «разомкнутый цикл» или «не завершено»? ⇐ C#
Место общения программистов C#
1710414209
Гость
[b]Прежде всего:[/b] я не умею «говорить» на C#, но немного знаю, как работает этот язык программирования.
[b]О Strong>
Я пытаюсь реализовать скрипт C# в системе видеонаблюдения Genetec Makro. Он должен отправить HTTPS-GET-запрос для изменения параметра на сервере.
Сборка[/b]
Я нахожусь в отдельной VLAN без Интернета. Связь. Я предполагаю, что у него есть прокси, который позволяет пройти этому URL. URL-адрес прекрасно работает в браузере.
[b]Проблема[/b]
Проявляется следующим образом: я могу запустить скрипт, и он работает. Когда я запускаю его снова позже, он ничего не делает. (Может быть, это сработает в любое время позже, но я не смог это подтвердить)
Код состоит из того, что последний человек оставил после ухода, и некоторой помощи ChatGPT. ChatGPT добавил случайный параметр. Я реализовал это, потому что человек, создавший аналог (URL-сторона), сказал, что это может быть проблема с кэшем прокси.
[b]Вопросы strong>
Есть ли проблема в коде?
Нужно ли мне что-то добавить, чтобы он работал лучше/безопаснее?
using System.Net;
using System.IO;
using Genetec.Sdk;
using Genetec.Sdk.Entities;
using Genetec.Sdk.Enumerations;
using Genetec.Sdk.Queries;
using Genetec.Sdk.Scripting;
using Genetec.Sdk.Scripting.Interfaces.Attributes;
using System;
[MacroParameters()]
public sealed class myMacro : UserMacro
{
///
/// Entry point of the macro. Provide an implementation of this method.
///
public override void Execute()
{
// Generiere einen zufälligen Wert für rand
string randomValue = GenerateRandomValue();
// Ersetze den festen Wert von rand in der URL mit dem zufälligen Wert
string url = "https://ANYURL.com/cgi-bin/control2.php?key2=ENTER_KEY&cam5=0&rand=" + randomValue;
WebRequest wrGETURL;
wrGETURL = WebRequest.Create(url);
System.IO.Stream objStream;
objStream = wrGETURL.GetResponse().GetResponseStream();
}
///
/// Generiert einen zufälligen alphanumerischen String.
///
/// Zufälliger String.
private string GenerateRandomValue()
{
const string chars = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
Random random = new Random();
return new string(Enumerable.Repeat(chars, 10).Select(s => s[random.Next(s.Length)]).ToArray());
}
///
/// Called when the macro needs to clean up.
///
protected override void CleanUp()
{
// Release objects created by the Execute method, unhook events, and so on.
}
}
Примечание: ANYURL и ENTER_KEY вставлены в готовый код. извините, я не могу их опубликовать.
Что я пробовал[/b]
Я добавил случайную часть в URL-адрес, чтобы быть уверенным, что с ним нет проблем. прокси-кеш. Я спросил в чате, что может быть не так. Я проверил большую часть этого (мне пока не удалось полностью проверить, что брандмауэр разрешает каждый запрос, но когда он работает в браузере, он также должен работать непосредственно из Центра безопасности/Genetec)
[b]Найдено решение i(ChatGPT):[/b]
using System;
//using System.IO;
using System.Net;
//using Genetec.Sdk;
//using Genetec.Sdk.Entities;
//using Genetec.Sdk.Enumerations;
//using Genetec.Sdk.Queries;
using Genetec.Sdk.Scripting;
using Genetec.Sdk.Scripting.Interfaces.Attributes;
[MacroParameters()]
public sealed class myMacro : UserMacro
{
///
/// Entry point of the macro. Provide an implementation of this method.
///
public override void Execute()
{
try
{
string url = "https://ANYURL.com/cgi-bin/control2.php?key2=ENTER_KEY&cam5=1";
WebRequest wrGETURL = WebRequest.Create(url);
using (WebResponse response = wrGETURL.GetResponse())
using (System.IO.Stream objStream = response.GetResponseStream())
{
// Process the response stream here
}
}
catch (Exception ex)
{
// Log or handle the exception appropriately
Console.WriteLine($"An error occurred: {ex.Message}");
}
}
///
/// Called when the macro needs to clean up.
///
protected override void CleanUp()
{
// Release objects created by the Execute method, unhook events, and so on.
}
}
Подробнее здесь: [url]https://stackoverflow.com/questions/78006212/does-this-code-have-any-obvious-errors-like-open-loop-or-not-finished[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия