Загрузка аудиозаписей в vk.com средствами vk api - C#
Формулировка задачи:
Доброго времени суток! Проблема собственно в выполнении post запроса при отправке аудиофайла на сервер. Это второй шаг:
Источник
Процедура заливки файла:
Может кто-нибудь выполнял такое... Help)))
Загрузка аудиозаписей
Загрузка аудиозаписей на сервер ВКонтакте от имени пользователя осуществляется приложением в 3 этапа:
1. С помощью метода audio.getUploadServer приложение узнает http-адрес для загрузки аудиозаписей.
2. Приложение формирует POST-запрос на полученный адрес.
Поле file должно содержать файл в формате MP3.
В ответ приложение получает данные: server, audio и hash в виде JSON:
{"server": "1234", "audio": "1234", "hash": "12345abcde"}
3. С помощью метода audio.save приложение передает серверу полученные данные (server, audio и hash) и получает данные о загруженной аудиозаписи.
Аудиозаписи загружены.
public static void loadToVK(string filePath)
{
string url = String.Format(@"https://api.vk.com/method/audio.getUploadServer.xml?access_token={0}", token);
var xml = new XmlDocument();
xml.Load(url);
string serverUrl = xml.InnerText;
serverUrl = serverUrl.Replace("&", "&");
var bytes = File.ReadAllBytes(filePath);
var cookies = new CookieContainer();
ServicePointManager.Expect100Continue = false;
var request = (HttpWebRequest)WebRequest.Create(serverUrl);
request.CookieContainer = cookies;
request.Method = "POST";
request.ContentType = "application/x-www-form-urlencoded";
using (var requestStream = request.GetRequestStream())
using (var writer = new StreamWriter(requestStream))
{
writer.Write(bytes);
}
string responseJSON;
using (var responseStream = request.GetResponse().GetResponseStream())
using (var reader = new StreamReader(responseStream))
{
responseJSON = reader.ReadToEnd();
}
Dictionary<string, string> info = ParseJson(responseJSON);
url = String.Format(@"https://api.vk.com/method/audio.save.xml?server={0}&audio={1}&access_token={2}&hash={3}", info["server"], info["audio"], token, info["hash"]);
xml = new XmlDocument();
xml.Load(url);
}Решение задачи: «Загрузка аудиозаписей в vk.com средствами vk api»
textual
Листинг программы
Dictionary<string, string> info = ParseJson(responseJSON);
url = String.Format(@"https://api.vk.com/method/audio.save.xml?server={0}&audio={1}&access_token={2}&hash={3}", info["server"], info["audio"], token, info["hash"]);
xml = new XmlDocument();
xml.Load(url);