Gfycat API文件上传

本文关键字:文件 API Gfycat | 更新日期: 2023-09-27 18:13:28

我正在努力使用Gfytcat API从我的机器上传mp4。也许只有我这样认为,但API文档似乎没有很好地充实。

下面的代码成功请求一个新的文件,但是上传失败,出现以下错误:204:No Content.

using (var client = new HttpClient())
{
    var response = await client.PostAsync(@"https://api.gfycat.com/v1/gfycats", null);
    var responseString = await response.Content.ReadAsStringAsync();
    var newGfycatResponse = Newtonsoft.Json.JsonConvert.DeserializeObject<NewGfycatResponse>(responseString);
    Console.WriteLine("gfyname: " + newGfycatResponse.gfyname);
    Console.WriteLine("secret: " + newGfycatResponse.secret);
    var filePath = @"C:'Users'Julien'Videos'black cat jumping.mp4";
    var file = File.ReadAllBytes(filePath);
    using (var content = new MultipartFormDataContent())
    {
        content.Add(new StringContent(newGfycatResponse.gfyname), "key");
        content.Add(new ByteArrayContent(file), "file", newGfycatResponse.gfyname);
        using (var message = await client.PostAsync("https://filedrop.gfycat.com", content))
        {
            var input = await message.Content.ReadAsStringAsync();
            Console.WriteLine(input);
        }
    }
}

Gfycat API文件上传

看起来下面一行是不正确的。您必须将字段命名为"file",您将其命名为文件的名称。

content.Add(new StreamContent(new MemoryStream(file)), "file", newGfycatResponse.gfyname);

编辑* * * *

你可以像下面这样修改文件的标题。

以下

摘自:ASP。. NET WebApi:如何使用WebApi HttpClient执行文件上传的多部分文章

var fileContent = new ByteArrayContent(System.IO.File.ReadAllBytes(fileName));
    fileContent.Headers.ContentDisposition = new ContentDispositionHeaderValue("attachment")
    {
        FileName = "Foo.txt"
    };
    content.Add(fileContent);