Загрузить файл с помощью Telegram Bot Api - PullRequest
0 голосов
/ 08 июня 2018

Я хочу загрузить фотографию ( или любой файл ) в 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)

Если у кого-то есть решение, пожалуйста, сообщите мне и приведите пример: (

...