Добрый день! Уважаемые знатоки, подскажите, пишу бота для телеграма, одной из функции которого будет отправка фото.
Фото надо скачать и потом уже отправить в чат.
Вот код:
using (WebClient webClient = new WebClient())
{
await Bot.SendChatActionAsync(message.From.Id, ChatAction.UploadPhoto);
string credentails = Convert.ToBase64String(System.Text.Encoding.ASCII.GetBytes("admin:admin"));
webClient.Headers[System.Net.HttpRequestHeader.Authorization] = "Basic " + credentails;
byte[] data = webClient.DownloadData(new Uri("http://192.168.10.40/Streaming/channels/1/picture"));
const string file = @"C:\temp\1.jpeg";
using (MemoryStream mem = new MemoryStream(data))
{
using (var image = Image.FromStream(mem))
{
image.Save("C:\\temp\\1.jpeg", ImageFormat.Jpeg);
}
using (var fileStream = new FileStream(file, FileMode.Open, FileAccess.Read, FileShare.Read))
{
await Bot.SendPhotoAsync(message.Message.Chat.Id, fileStream);
}
}
}
На строке с загрузкой данных я получаю : Bad Request: wrong URL host
Но почему? В браузере открывается изображение, а тут...
Очень буду рад помощи/совету! У меня идеи кончились. :(
Спасибо!
Попробовал скачать изображение с консольного приложения.
Всё получилось. А точно такой же код в боте - не работает :(
const string url_vebcam02 = "http://192.168.10.40/Streaming/channels/1/picture";
using (WebClient webClient = new WebClient())
{
string credentails = Convert.ToBase64String(System.Text.Encoding.ASCII.GetBytes("admin:admin"));
webClient.Headers[System.Net.HttpRequestHeader.Authorization] = "Basic " + credentails;
webClient.DownloadFile(new Uri(url_vebcam02), @"C:\temp\11.jpg");
}