Доброго дня всем!
Спустя полгода решил переписать своего старенького ВК-бота. В процессе этого обнаружил, что они изменили правила аплоада файлов на сервер и просто webClient.UploadFile() больше не прокатывает.
"Передайте файл на адрес upload_url, полученный в предыдущем пункте, сформировав POST-запрос с полем file. Это поле должно содержать файл в формате multipart/form-data." - вот, что они ныне просят. С POST-запросами я достаточно редко сталкиваюсь, так что не совсем понимаю, как туда запихнуть данные о файле. Помогите, пожалуйста, верно сформировать этот самый post-запрос
Делаю так, подскажите, что тут неверно, ибо Result возвращается пустой строкой!
var uri = new Uri(uploadURL);
var content = new MultipartFormDataContent();
var t = new StreamContent(File.OpenRead(path));
t.Headers.ContentType
= new System.Net.Http.Headers.MediaTypeHeaderValue("multipart/form-data");
content.Add(t, "file", "testiks.jpg");
var response = PostBuffer(uri, content);
response.Wait();
Метод PostBuffer:
private async Task<string> PostBuffer(Uri uploadURL, MultipartFormDataContent content)
{
var baseAddress = uploadURL;
var cookieContainer = new CookieContainer();
using (var handler = new HttpClientHandler() { CookieContainer = cookieContainer })
using (var client = new HttpClient(handler) { BaseAddress = baseAddress })
{
client.DefaultRequestHeaders.Add("User-Agent", "Mozilla 228");
var response = await client.PostAsync(uploadURL, content);
return await response.Content.ReadAsStringAsync();
}
}