C# 如何使用httpwebrequest c在imgur上上传大尺寸图像文件#

C# 如何使用httpwebrequest c在imgur上上传大尺寸图像文件#,c#,imgur,C#,Imgur,我有一个关于在imgur上上传大文件的问题 我在imgur.com上找到了一个使用api上传图像的源代码 它适用于小尺寸的图像文件,但不适用于大尺寸的图像文件 我已经测试了488kb大小的图像文件 该错误返回400错误请求服务器错误 这是我的源代码,请给我一个建议 多谢各位 private string upload_img(string img_name) { string img_url = ""; try { strin

我有一个关于在imgur上上传大文件的问题

我在imgur.com上找到了一个使用api上传图像的源代码

它适用于小尺寸的图像文件,但不适用于大尺寸的图像文件

我已经测试了488kb大小的图像文件

该错误返回400错误请求服务器错误

这是我的源代码,请给我一个建议 多谢各位

private string upload_img(string img_name)
   {
       string img_url = "";
       try
       {
           string api_url_image = "https://api.imgur.com/3/image";
         //  string api_url = "https://api.imgur.com/3/upload";

           HttpWebRequest request = (HttpWebRequest)WebRequest.Create(api_url_image);
           request.Headers.Add("Authorization", "Client-ID <<My client ID Here>>");    //authorized id


           request.Method = "POST";


           FileStream file = new FileStream(filePath, FileMode.Open);
           byte[] image = new byte[file.Length];
           file.Read(image, 0, (int)file.Length);
           ASCIIEncoding enc = new ASCIIEncoding();
           string postData = Convert.ToBase64String(image);
           byte[] bytes = enc.GetBytes(postData);

           request.ContentType = "application/x-www-form-urlencoded";
           request.ContentLength = bytes.Length;

           Stream writer = request.GetRequestStream();
           writer.Write(bytes, 0, bytes.Length);

           HttpWebResponse response = (HttpWebResponse)request.GetResponse();
           response.GetResponseStream();

           if (response.StatusCode == HttpStatusCode.OK)
           {

               Stream responseStream = response.GetResponseStream();
               string responseStr = new StreamReader(responseStream).ReadToEnd();

               img_url = responseStr.Remove(0, responseStr.IndexOf("link") + 7);
               img_url = img_url.Substring(0, img_url.IndexOf("success") - 4);
               img_url = img_url.Replace("\\","");
               responseStream.Close();
           }
           response.Close();
       }
       catch (Exception ex)
       {
           MessageBox.Show(ex.Message);
       }

       return img_url;
   }
私有字符串上传\u img(字符串img\u名称)
{
字符串img_url=“”;
尝试
{
字符串api\u url\u图像=”https://api.imgur.com/3/image";
//字符串api_url=”https://api.imgur.com/3/upload";
HttpWebRequest请求=(HttpWebRequest)WebRequest.Create(api\uURL\uImage);
request.Headers.Add(“授权”,“客户端ID”);//授权ID
request.Method=“POST”;
FileStream file=newfilestream(filePath,FileMode.Open);
byte[]image=新字节[file.Length];
读取(image,0,(int)file.Length);
ascienceoding enc=新的ascienceoding();
string postData=Convert.ToBase64String(图像);
字节[]字节=enc.GetBytes(postData);
request.ContentType=“application/x-www-form-urlencoded”;
request.ContentLength=字节.Length;
流编写器=request.GetRequestStream();
writer.Write(字节,0,字节.长度);
HttpWebResponse=(HttpWebResponse)request.GetResponse();
response.GetResponseStream();
if(response.StatusCode==HttpStatusCode.OK)
{
Stream responseStream=response.GetResponseStream();
字符串responsest=新的StreamReader(responseStream).ReadToEnd();
img_url=responsest.Remove(0,responsest.IndexOf(“链接”)+7);
img_url=img_url.Substring(0,img_url.IndexOf(“成功”)-4);
img\u url=img\u url.Replace(“\\”,”);
responseStream.Close();
}
response.Close();
}
捕获(例外情况除外)
{
MessageBox.Show(例如Message);
}
返回img_url;
}

当我下载图像文件并保存它时。 我限制了文件大小,如下所示 这是我的错误:)

私有字符串下载\u img(字符串url) {

        string imageUrl = @url;
        string img_name = imageUrl.Replace("http://i.imgur.com/", "");
        string saveLocation = @"C:\folder_name\" + img_name;

        byte[] imageBytes;
        HttpWebRequest imageRequest = (HttpWebRequest)WebRequest.Create(imageUrl);
        WebResponse imageResponse = imageRequest.GetResponse();

        Stream responseStream = imageResponse.GetResponseStream();

        using (BinaryReader br = new BinaryReader(responseStream))
        {
            imageBytes = br.ReadBytes(500000);
            br.Close();
        }
        responseStream.Close();
        imageResponse.Close();

        FileStream fs = new FileStream(saveLocation, FileMode.Create);
        BinaryWriter bw = new BinaryWriter(fs);
        try
        {
            bw.Write(imageBytes);
        }
        finally
        {
            fs.Close();
            bw.Close();
        }

        return img_name;

    }
    private string download_img2(string url)
    {

        string imageUrl = @url;
        string img_name = imageUrl.Replace("http://i.imgur.com/", "");
        string saveLocation = @"C:\ssulf\" + img_name;

        byte[] imageBytes;
        HttpWebRequest imageRequest = (HttpWebRequest)WebRequest.Create(imageUrl);
        WebResponse imageResponse = imageRequest.GetResponse();

        Stream responseStream = imageResponse.GetResponseStream();

        using (BinaryReader br = new BinaryReader(responseStream))
        {
            // imageBytes = br.ReadBytes(500000);
            imageBytes = br.ReadBytes(1000000);
            br.Close();
        }
        responseStream.Close();
        imageResponse.Close();



        FileStream fs = new FileStream(saveLocation, FileMode.Create);
        BinaryWriter bw = new BinaryWriter(fs);
        try
        {
            bw.Write(imageBytes);
        }
        finally
        {
            fs.Close();
            bw.Close();
        }

        return img_name;

    }