Я хочу загрузить фотографию ( или любой файл ) в Telegram без использования существующих библиотек Telegram ( Как Telegram.Bot или TLsharp ), Но я не знаю, какие методы и параметры для POST это, и я не нашел ничего в Google!
также я не хочу использовать HttpClient Класс или System.Net.Http ( Поскольку требуется .NET Framwork 4,5 )
static void Main(string[] args)
{
var file = System.IO.File.ReadAllBytes(@"D:\Piture\Logo.png");
UploadMultipart(file, @"D:\Piture\Logo.png", "chat_id 123456789", "https://api.telegram.org//bot123456789:******************Ru7zouEc/sendPhoto");
Console.ReadKey(true);
}
static void UploadMultipart(byte[] file, string filename, string contentType, string url)
{
var webClient = new WebClient();
string boundary = "--" + DateTime.Now.Ticks.ToString("x");
webClient.Headers.Add("Content-Type", "multipart/form-data; boundary=" + boundary);
var fileData = webClient.Encoding.GetString(file);
var package = string.Format("--{0}\r\nContent-Disposition: form-data; name=\"file\"; filename=\"{1}\"\r\nContent-Type: {2}\r\n\r\n{3}\r\n--{0}--\r\n", boundary, filename, contentType, fileData);
var nfile = webClient.Encoding.GetBytes(package);
webClient.UploadData(url, "POST", nfile);
}
И янашел правильное размещение контента: Детали запроса библиотеки telegram.bot
декодированный контент внутри фотографии :
--5d0b5218-7d9b-4e38-8999-1a05325549db
Content-Type: text/plain; charset=utf-8
Content-Disposition: form-data;name=caption Logo
--5d0b5218-7d9b-4e38-8999-1a05325549db
Content-Type: text/plain; charset=utf-8
Content-Disposition: form-data; name=chat_id 123456789
--5d0b5218-7d9b-4e38-8999-1a05325549db
Content-Type: application/octet-stream
Content-Disposition: form-data; name="photo";filename="D:\Picture\Logo.png"
(and other is file data)
Если у кого-то есть решение, пожалуйста, сообщите мне и приведите пример: (