@kosyak_47

API Вконтакте. Куда добавить поле"file" в POST запросе?

Добрый день. Пишу программу на c#, на которой планируется загружать информацию о товарах в ВКОНТАКТЕ. Реализовано это через API Вконтакте.

В общем добрался до момента с загрузкой фотографии для товара, где у меня возникла проблема. Приведу описание реализации с сайта API Вконтакте:
"Передайте файл на адрес upload_url, полученный в предыдущем пункте, сформировав POST-запрос с полем file. Это поле должно содержать изображение в формате multipart/form-data."

Проблема в том, что я не могу понять, в меру своей неопытности, куда прописывать поле file. Буду очень благодарен, кто подскажет решение. Спасибо

P.S. При отправке запроса с любым содержимым поля postedData сервер возвращает ответ в виде
"{"error":"ERR_UPLOAD_BAD_IMAGE_SIZE: market photo min size 400x400","bwact":"do_add","server":234031,"_sig":"9d38b3a8d7071e818f1ae2b4033ddcc8"}".

В общем, тут проблема точно в отсутствии поля file в POST запросе

Код POST запроса:

public static HttpWebResponse PostMethodForUpload(string postedData, string postUrl)
        {
            HttpWebRequest request = (HttpWebRequest)WebRequest.Create(postUrl);

            request.Method = "POST";
            request.Credentials = CredentialCache.DefaultCredentials;

            UTF8Encoding encoding = new UTF8Encoding();
            var bytes = encoding.GetBytes(postedData);

            request.ContentType = "multipart/form-data";
            request.ContentLength = bytes.Length;

            using (var newStream = request.GetRequestStream())
            {
                newStream.Write(bytes, 0, bytes.Length);
                newStream.Close();
            }
            return (HttpWebResponse)request.GetResponse();
        }
  • Вопрос задан
  • 226 просмотров
Решения вопроса 1
@dgash2201
Можно сделать с помощью WebClient
var wc = new WebClient();
var response = Encoding.ASCII.GetString(wc.UploadFile(uploadUrl, /* Путь до файла */ @"image.png"));
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
BasiC2k
@BasiC2k
.NET developer (open to job offers)
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы