我的一位朋友试图将Windows窗体应用程序上的图像上传到一个chevereto网站,使用chevereto API并尝试获取链接(来自网站的回复),但它并没有真正起作用......
API:Chevereto API
static class Upload
{
string apiKey = "DEFAULT_API_KEY";
public string UploadImage(Image image)
{
WebClient webClient = new WebClient();
webClient.Headers.Add("key", apiKey);
webClient.Headers.Add("format", "txt");
System.Collections.Specialized.NameValueCollection Keys =
new System.Collections.Specialized.NameValueCollection();
try
{
string ht = "http://";
Keys.Add("image", ImageToBase64(image, ImageFormat.Bmp));
byte[] responseArray = webClient.UploadValues(ht + "mysite.com/api/1/upload/", Keys);
string result = Encoding.ASCII.GetString(responseArray);
return result;
}
catch (Exception e)
{
InternalConsole.LogError("Cannot upload image, error on next line: ");
InternalConsole.Log(e.Message);
return "none";
}
}
public string ImageToBase64(Image image, System.Drawing.Imaging.ImageFormat format)
{
using (MemoryStream ms = new MemoryStream())
{
// Convert Image to byte[]
image.Save(ms, format);
byte[] imageBytes = ms.ToArray();
// Convert byte[] to Base64 String
string base64String = Convert.ToBase64String(imageBytes);
return base64String;
}
}
}
有人能告诉我它是如何完成的吗?
提前致谢。
答案 0 :(得分:0)
没关系,我的朋友已经解决了这个问题。
他使用WebRequest发送和接收数据。 他还说,不要忘记转义base64(+,=,/)的字符串,否则api将无法正确接受并返回无效的base64字符串。
非常感谢。