2

Imgur から独自の開発者 API キーを受け取ったばかりで、この赤ちゃんをクラックし始めたくてうずうずしています。

最初に、物事を開始するための簡単なテストです。C# を使用して画像をアップロードするにはどうすればよいですか? Pythonを使用してこれを見つけました:

#!/usr/bin/python

import pycurl

c = pycurl.Curl()
values = [
          ("key", "YOUR_API_KEY"),
          ("image", (c.FORM_FILE, "file.png"))]
# OR:     ("image", "http://example.com/example.jpg"))]
# OR:     ("image", "BASE64_ENCODED_STRING"))]

c.setopt(c.URL, "http://imgur.com/api/upload.xml")
c.setopt(c.HTTPPOST, values)

c.perform()
c.close()
4

3 に答える 3

4

Imgur API は完全な c# の例を提供するようになりました:

using System;
using System.IO;
using System.Net;
using System.Text;

namespace ImgurExample
{
    class Program
    {
        static void Main(string[] args)
        {
            PostToImgur(@"C:\Users\ashwin\Desktop\image.jpg", IMGUR_ANONYMOUS_API_KEY);
        }

        public static void PostToImgur(string imagFilePath, string apiKey)
        {
            byte[] imageData;

            FileStream fileStream = File.OpenRead(imagFilePath);
            imageData = new byte[fileStream.Length];
            fileStream.Read(imageData, 0, imageData.Length);
            fileStream.Close();

            string uploadRequestString = "image=" + Uri.EscapeDataString(System.Convert.ToBase64String(imageData)) + "&key=" + apiKey;

            HttpWebRequest webRequest = (HttpWebRequest)WebRequest.Create("http://api.imgur.com/2/upload");
            webRequest.Method = "POST";
            webRequest.ContentType = "application/x-www-form-urlencoded";
            webRequest.ServicePoint.Expect100Continue = false;

            StreamWriter streamWriter = new StreamWriter(webRequest.GetRequestStream());
            streamWriter.Write(uploadRequestString);
            streamWriter.Close();

            WebResponse response = webRequest.GetResponse();
            Stream responseStream = response.GetResponseStream();
            StreamReader responseReader = new StreamReader(responseStream);

            string responseString = responseReader.ReadToEnd();
        }
    }
}
于 2012-02-01T20:58:40.687 に答える
4

このサイトは HTTP Post を使用して画像をアップロードしているようです。HTTPWebRequestクラスを見て、それを使用して URL に POST する: Posting data with HTTPRequest .

于 2010-01-10T23:48:17.537 に答える