通过HTTPS上传.mp4

时间:2018-08-15 03:05:09

标签: c# uwp giphy-api

我正在尝试将.mp4文件上传到Giphy.com的API。它说以“二进制”的形式发送文件,我想我对它们的确切含义感到困惑。如果您滚动到“上传端点”的底部,则为以下文档。 https://developers.giphy.com/docs/

这就是我现在所拥有的。

我已经尝试了多个版本(使用StringContentMultipartFormDataContentByteArrayContentHttpMessages等),总是收到'400-Bad Request -No Source 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 个答案:

答案 0 :(得分:0)

您的代码似乎与{api_key}不正确匹配。您不会在任何地方使用“ dic”变量。您可以改为使用v1/gifs?api_key=YOUR_API_KEY&file=。应该用从giphy获得的API密钥替换YOUR_API_KEY。

答案 1 :(得分:0)

  

总是得到“ 400-错误请求-没有源网址”(如果您上传的是自己的,则文档说不需要),这使我相信内容未被识别。

您需要为ByteArrayContent应用名称。 document已显示Request Parameters包含“ 文件:如果未提供source_image_url,则为字符串(二进制)”。

代码应如下所示:

MultipartFormDataContent multipartContent = new MultipartFormDataContent();
multipartContent.Add(new ByteArrayContent(bytes),"file");