为了账号安全,请及时绑定邮箱和手机立即绑定

通过 HTTPS 上传 .mp4

通过 HTTPS 上传 .mp4

C#
蛊毒传说 2021-11-28 18:48:03
我正在尝试将 .mp4 文件上传到 Giphy.com 的 API。它说将文件作为“二进制”发送,我想我对它们的确切含义感到困惑。如果您在“上传端点”处滚动到底部,则会看到以下文档。https://developers.giphy.com/docs/这就是我现在所拥有的。我已经尝试了多个版本(使用StringContent, MultipartFormDataContent, ByteArrayContent, HttpMessages... 等)并且总是得到“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 回答

?
HUWWW

TA贡献1874条经验 获得超12个赞

总是得到一个“400 - 错误的请求 - 没有源 URL”(如果你上传你自己的,文档说不需要)这让我相信内容没有被识别。

您需要为ByteArrayContent. 该文档显示Request Parameters包含“文件:如果未提供 source_image_url 则需要字符串(二进制)”。

代码应如下所示:

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


查看完整回答
反对 回复 2021-11-28
?
桃花长相依

TA贡献1860条经验 获得超8个赞

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


查看完整回答
反对 回复 2021-11-28
  • 2 回答
  • 0 关注
  • 260 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信