无法使用 asp.net 将图像上传到 imgur

Can't upload an image to imgur with asp.net

我正在做一个需要将图片上传到 imgur.com 的项目,我写了代码,但是在发布部分时没有用!有什么建议吗?

 private async Task<string> UploadImageAsync(string imageDataBase64String)
    {
        client = new HttpClient();
        client.BaseAddress = new Uri("https://api.imgur.com/3/");
        client.DefaultRequestHeaders.Add("Authorization", "Client-id " + ClientID);
        HttpContent contentPost = new StringContent(imageDataBase64String);
        var response = await client.PostAsync("image", contentPost);
        response.EnsureSuccessStatusCode();
        var responseContent = await response.Content.ReadAsStringAsync();
        var model = new JavaScriptSerializer().Deserialize<dynamic>(responseContent);
        var imageLink = model["data"]["link"];
        return imageLink;
    }

我正在做类似的项目,我是这样做的。

  • 为 imgur 响应创建视图模型:

    public class ImgurResponseViewModel
    {
        public ImgurImageDataViewModel Data { get; set; }
        public bool Success { get; set; }
        public int Status { get; set; }
    }
    
  • 为图像数据创建视图模型:

    public class ImgurImageDataViewModel
    {
        public string Id { get; set; }
        public string Title { get; set; }
        public string Description { get; set; }
        public string Datetime { get; set; }
        public string Type { get; set; }
        public bool Animated { get; set; }
        public int Width { get; set; }
        public int Height { get; set; }
        public int Size { get; set; }
        public int Views { get; set; }
        public int Bandwidth { get; set; }
        public string Ddeletehash { get; set; }
        public string Section { get; set; }
        public string Link { get; set; }
        public string Account_url { get; set; }
        public int Aaccount_id { get; set; }
    }
    
  • 这是上传代码:

    private async Task<string> UploadImageAsync(string imageDataBase64String)
    {
        byte[] response;
        using (var client = new WebClient())
        {
            string clientID = "YourClientID";
            client.Headers.Add("Authorization", "Client-ID " + clientID);
            var values = new NameValueCollection { { "image", imageDataBase64String } };
            response = await client.UploadValuesTaskAsync("https://api.imgur.com/3/upload", values);
        }
    
        var result = JsonConvert.DeserializeObject<ImgurResponseViewModel>(Encoding.ASCII.GetString(response));
    
        return result.Data.Link;
    }
    

希望对您有所帮助。