Загрузка.mp4 через HTTPS

Я пытаюсь загрузить файл.mp4 в API Giphy.com. В нем говорится, чтобы отправить файл как "Бинарный", и я думаю, что я запутался, что именно они подразумевают под этим. Вот документы, если вы прокрутите вниз до "Загрузить конечную точку". https://developers.giphy.com/docs/

Вот что у меня сейчас.

Я пробовал несколько версий этого (используя StringContent, MultipartFormDataContent, ByteArrayContent, HttpMessages... и т. д.) и всегда получаю "400 - неверный запрос - исходный URL отсутствует" (который, по словам документации, не требуется, если вы загружаете свою собственную), что заставляет меня поверить, что контент не распознается.

    public async Task<HttpResponseMessage> UploadVideoAsync(StorageFile file)
    {
        using (var stream = await file.OpenStreamForReadAsync())
        {
            byte[] bytes = new byte[stream.Length];
            await stream.ReadAsync(bytes, 0, (int)stream.Length);

            Dictionary<string, string> dic = new Dictionary<string, string>
            {
                { "file", Encoding.ASCII.GetString(bytes) },
                { "api_key", api_key }
            };

            MultipartFormDataContent multipartContent = new MultipartFormDataContent();
            multipartContent.Add(new ByteArrayContent(bytes));
            var response = await httpClient.PostAsync($"v1/gifs?api_key={api_key}", multipartContent);
            var stringResponse = await response.Content.ReadAsStringAsync();
            return response;

        }
    }

2 ответа

Похоже, ваш код не соответствует {api_key} должным образом. Вы нигде не используете переменную "dic". Вы можете попробовать с v1/gifs?api_key=YOUR_API_KEY&file= вместо. Где YOUR_API_KEY должен быть заменен вашим ключом API, полученным из giphy.

всегда получаю '400 - Bad Request - No Source Url' (который, по словам документации, не требуется, если вы загружаете свою собственную), что заставляет меня поверить, что контент не распознается.

Вам необходимо указать имя для ByteArrayContent, Документ показал, что Request Parameters содержит 'file: string (binary), обязательный, если не указано source_image_url'.

Код должен выглядеть следующим образом:

MultipartFormDataContent multipartContent = new MultipartFormDataContent();
multipartContent.Add(new ByteArrayContent(bytes),"file");
Другие вопросы по тегам