IMGUR照片上传POST请求
本文关键字:POST 请求 照片 IMGUR | 更新日期: 2023-09-27 17:57:30
我想做的是使用他们的API将照片上传到imgur网站http://api.imgur.com/endpoints/image#image-上传。正如我在文档中所读到的,图像数据必须在"图像"参数中。所以我所做的是将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();
我也在尝试做同样的事情,同时也面临着这个问题。。。
我有一个解决方案。。。
上传图像后,使用response.getresponsestream()…获取图像的id。。。。然后使用此id更新该图像。。不要忘记使用imgurAPI来更新图像。。要了解更多关于更新imgur图片的信息,请访问此链接。
我的解决方案:
using (var reader = new StreamReader(response.GetResponseStream()))
{
var objText = reader.ReadToEnd();
}
在对象文本中,您会发现json响应