使用 Imgur API 和 VB.NET 的帮助 - Image POST [英] Help with Imgur API and VB.NET - Image POST

查看:23
本文介绍了使用 Imgur API 和 VB.NET 的帮助 - Image POST的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在尝试将图像发送到 Imgur 的服务器.一切正常,我从解析器获取图像的 URL,但是当我尝试在网络浏览器上打开它时,我没有得到图像......只有一个损坏的图像"图标.

我认为这是转换为字节数组的问题....但我不明白.请让我知道/修复我的代码.

 Dim image As Image = image.FromFile(OpenFile.FileName)Dim ms As New MemoryStream()' 将图像转换为字节[]image.Save(ms, System.Drawing.Imaging.ImageFormat.Jpeg)Dim imageBytes As Byte() = ms.ToArray()Dim wb As WebRequest = WebRequest.Create(New Uri("http://imgur.com/api/upload.xml"))wb.ContentType = "application/x-www-form-urlencoded"wb.Method = "POST"wb.超时 = 10000Console.WriteLine(imageBytes.Length)Dim 参数 As String = "key=a801fa0b08a2117f5bb62b006f769b99&image=" + Convert.ToBase64String(imageBytes)Dim encoding As New System.Text.UTF8Encoding()Dim bytes As Byte() = encoding.GetBytes(parameters)Dim os As System.IO.Stream = 无尝试wb.ContentLength = bytes.Lengthos = wb.GetRequestStream()os.Write(bytes, 0, bytes.Length)Dim xmlData As String = POSThandling.makePOSTrequest("http://imgur.com/api/upload.xml", New String() {parameters})Dim xmlDoc As XmlDocument = New XmlDocument()xmlDoc.LoadXml(xmlData)Dim name As XmlNodeList = xmlDoc.GetElementsByTagName("original_image")Dim imageText As String = (name(0).InnerText).ToStringmessageText.Text = imageText.ToStringPanelUpload.Visible = FalseUpImage.Enabled = TrueSendMsg.Enabled = True最后如果不是(操作系统什么都没有)那么万一结束尝试

解决方案

这里是 C# 中的 Imgur API 示例

http://api.imgur.com/examples#uploading_cs

要回答您的问题,您需要先将图像读入字节数组.然后将原始字节数组转换为 Base64 编码的字符串

FileStream fileStream = File.OpenRead(imageFilePath);byte[] imageData = new byte[fileStream.Length];fileStream.Read(imageData, 0, imageData.Length);fileStream.Close();字符串 base64EncodedImage = System.Convert.ToBase64String(imageData);

I'm trying to send an image to Imgur's server. Everything went fine and I'm getting the URL of the image from the parser but when I'm trying to open it on the web browser, I'm not getting the image... only a "broken image" icon.

I think it's a problem in the convertion to the byte array.... but I don't get it. please let me know/fix my code.

   Dim image As Image = image.FromFile(OpenFile.FileName)
    Dim ms As New MemoryStream()
    ' Convert Image to byte[]
    image.Save(ms, System.Drawing.Imaging.ImageFormat.Jpeg)
    Dim imageBytes As Byte() = ms.ToArray()
    Dim wb As WebRequest = WebRequest.Create(New Uri("http://imgur.com/api/upload.xml"))
    wb.ContentType = "application/x-www-form-urlencoded"
    wb.Method = "POST"
    wb.Timeout = 10000
    Console.WriteLine(imageBytes.Length)
    Dim parameters As String = "key=a801fa0b08a2117f5bb62b006f769b99&image=" + Convert.ToBase64String(imageBytes)
    Dim encoding As New System.Text.UTF8Encoding()
    Dim bytes As Byte() = encoding.GetBytes(parameters)
    Dim os As System.IO.Stream = Nothing
    Try
        wb.ContentLength = bytes.Length
        os = wb.GetRequestStream()
        os.Write(bytes, 0, bytes.Length)
        Dim xmlData As String = POSThandling.makePOSTrequest("http://imgur.com/api/upload.xml", New String() {parameters})
        Dim xmlDoc As XmlDocument = New XmlDocument()
        xmlDoc.LoadXml(xmlData)
        Dim name As XmlNodeList = xmlDoc.GetElementsByTagName("original_image")
        Dim imageText As String = (name(0).InnerText).ToString
        messageText.Text = imageText.ToString
        PanelUpload.Visible = False
        UpImage.Enabled = True
        SendMsg.Enabled = True
    Finally
        If Not (os Is Nothing) Then
        End If
    End Try

解决方案

Here is the Imgur API example in C#

http://api.imgur.com/examples#uploading_cs

To answer your question, you need to first read the image into an array of bytes. Then convert the raw byte array into a Base64 encoded string

FileStream fileStream = File.OpenRead(imageFilePath);
byte[] imageData = new byte[fileStream.Length];
fileStream.Read(imageData, 0, imageData.Length);
fileStream.Close();
string base64EncodedImage = System.Convert.ToBase64String(imageData);

这篇关于使用 Imgur API 和 VB.NET 的帮助 - Image POST的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆