首页 文章

C#获取请求Directus

提问于
浏览
1

最近我发现了这个名为Directus的惊人的cms,你可以用web请求和Json管理你的数据库和表 . 一切都工作得很好创建,更新,阅读......直到我想要使用WebRequest创建(上传)图像 .

我基本上将图像读取为Base64,并使用简单的GET请求将数据与Uri中的参数一起写入,与API中描述的完全相同 .

无论我尝试使用图像永远不会出现在我的文件中 . 我做错了什么或遗忘了什么?

或者,我还想从我那里得到别的东西吗?

我的第一次尝试:

public static async void UploadUserImage() {

            var uri = "http://IP/Directus/api/1/files?access_token=SecretApiKey";
            var data = GetImageData();
            var finalUri = $"{uri}&data={data}";

            using (var client = new HttpClient()) {
                var responseString = await client.GetStringAsync(finalUri);
                Console.Write(responseString);
            }
        }

我和Json的第二次尝试:

public static async void UploadUserImage() {

            var uri = "http://IP/Directus/api/1/files?access_token=SecretApiKey";
            var data = GetImageData();
            var finalUri = $"{uri}&data={data}";

            var postModel = new PictureModel {
                data = data,
                title = "Test",
                name = "test"
            };


        using (var client = new HttpClient())
            {
                // Serialize our concrete class into a JSON String
                var content = JsonConvert.SerializeObject(postModel);
                var contenta = new StringContent(content, Encoding.UTF8, "application/json");

                var response = await client.PostAsync(finalUri, contenta);
                var result = await response.Content.ReadAsByteArrayAsync();
                Console.Write(System.Text.Encoding.UTF8.GetString(result));
            }
        }

1 回答

  • 2

    文档不正确它实际上是一个 POST 请求 . 感谢您指出了这一点 .

    要上传新文件,您需要三个提供三个值:

    {
        "name": "image.png",
        "type": "image/png",
        "data": "base64content"
    }
    

    数据内容必须采用 data:<mime-type>;base64,<data-content> 格式,因此它看起来像这样: data:image/png;base64,ThisIsABase64Content

    我们正在更新文档并删除不必要的 data:image/png .

相关问题