无法使用asp.net上传图片

时间:2015-03-15 20:08:39

标签: asp.net httpclient imgur

我正在处理我需要将图像上传到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;
    }

1 个答案:

答案 0 :(得分:0)

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

  • 为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;
    }
    

我希望这会对你有所帮助。