@rybamoeymechty

C#. VK API. Из-за чего пустое поле photo в ответе JSON при попытке загрузки фотографии?

Здравствуйте, возникла необходимость загрузки фотографии на стену vk.com.
Согласно этой документации, отправляю post запрос на полученный в Пункте 1 URL таким методом:
public static HttpWebResponse PostMethod(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 = "application/json";
            request.ContentLength = bytes.Length;

            using (var newStream = request.GetRequestStream())
            {
                newStream.Write(bytes, 0, bytes.Length);
                newStream.Close();
            }
            return (HttpWebResponse)request.GetResponse();
        }

где postedData - Строка JSON, содержащая поле "photo" и значение в виде byte[], которое забивается следующим образом:
var webClient = new WebClient();
byte[] imageData = webClient.DownloadData("http://cs5530.vk.me/u43529379/-6/m_b9515ce2.jpg");
//изображение для примера


postUrl - полученный в результате запросов к api url

в ответ приходит:
{"server":425829,"photo":"[]","hash":"dd26fe93801ca464d320a0a6e35f7e8a"}

почему поле photo, которое должно содержать id загруженной фотографии, пустое?
  • Вопрос задан
  • 4604 просмотра
Пригласить эксперта
Ответы на вопрос 2
@SevaUA
У меня та же беда, только код на python(
Ответ написан
Комментировать
@SevaUA
Я разобрался. Попробовал curl залить фото и оно таки залилось. Python не умеет из коробки Content-Type: multipart/form-data; слать, после установки нужной библиотеки все заработало.
Рабочий header для моего post запроса такой:
> User-Agent: curl/7.30.0
> Host: cs312918.vk.com
> Accept: */*
> Content-Length: 56798
> Expect: 100-continue
> Content-Type: multipart/form-data; boundary=----------------------------c16a5ea66209
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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