【问题标题】:IMGUR photo upload POST RequestIMGUR 照片上传 POST 请求
【发布时间】:2013-01-18 16:17:09
【问题描述】:

我想做的是使用他们的 API 将照片上传到 imgur 网站http://api.imgur.com/endpoints/image#image-upload。正如我在文档中所读到的,图像数据必须在“图像”参数中。所以我正在做的是将 POST 请求数据设置为“image=base64codedfile&title=blabla&type=base64”,它确实上传了它,但文件已损坏。如果我的请求将只包含“base64codedfile”而没有图像、标题、类型名称参数,那么它的工作就像一个魅力。我是不是做错了什么?

如果我将其设置为:

string postData = "image="+Convert.ToBase64String(image)+"&type=base64&title=test;

图像已损坏

如果只是原始数据:

string postData = Convert.ToBase64String(image);

它正在工作

整个代码是这样的:

HttpWebRequest request = (HttpWebRequest)WebRequest.Create("https://api.imgur.com/3/upload.xml");
request.Headers.Add("Authorization", "Client-ID >>myclientid<<");
request.Method = "POST";

string filePath = "d:\\test.jpg";
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();

【问题讨论】:

  • 你应该检查file.Read(image, 0, (int)file.Length);的返回值,因为它实际上可能不是file.Length
  • 很好,就像我说的。如果 POST 请求中没有 "image="、"type=" 参数,说明照片上传正确。
  • 如果我在他们最新的 API 版本(当前版本是 3)上传递其他参数,我也遇到了图像无法上传的问题,你知道是否有一种上传标题的方法和/或描述?
  • 我很抱歉,但不,我保留原样

标签: c# http post request imgur


【解决方案1】:

我也在尝试做同样的事情并且也面临这个问题......

我有一个解决方案...

上传图片后,使用 response.getresponsestream()... 获取图片的 ID。 然后使用此 id 更新该图像..并且不要忘记使用 imgur api 更新图像..要了解有关更新 imgur 图像的更多信息,请访问link

【讨论】:

  • 您还没有包含链接,您可以编辑更多信息吗?
【解决方案2】:

我的解决方案:

      using (var reader = new StreamReader(response.GetResponseStream()))
        {
            var objText = reader.ReadToEnd();
        }

在对象文本中你会发现 json 响应

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-05-09
    • 2011-10-30
    • 2015-01-12
    • 2018-02-03
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多