質問

私はちょうど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()
役に立ちましたか?

解決

のサイトには、画像をアップロードするためにHTTPポストを使用していますように見えます。 HttpWebRequestのクラスとURLにPOSTするためにそれを使用して: HTTPRequestの

他のヒント

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();
        }
    }
}

は、なぜあなたは、このためにNuGetを使用していない:Imgur.API、アップロードを呼びかけ あなたはこのようなメソッドを持つことになります:

/*
   The refresh token and all the values represented by constans are given when you allow the application in your imgur panel on the response url
*/

public OAuth2Token CreateToken()
{
    var token = new OAuth2Token(TOKEN_ACCESS, REFRESH_TOKEN, TOKEN_TYPE, ID_ACCOUNT, IMGUR_USER_ACCOUNT, int.Parse(EXPIRES_IN));
    return token;
}

//Use it only if your token is expired
public Task<IOAuth2Token> RefreshToken()
{
    var client = new ImgurClient(CLIENT_ID, CLIENT_SECRET);
    var endpoint= new OAuth2Endpoint(client);
    var token = endpoint.GetTokenByRefreshTokenAsync(REFRESH_TOKEN);
    return token;
}


public async Task UploadImage()
{
     try
     {
          var client = new ImgurClient(CLIENT_ID, CLIENT_SECRET, CreateToken());
          var endpoint = new ImageEndpoint(client);
          IImage image;
          //Here you have to link your image location
          using (var fs = new FileStream(@"IMAGE_LOCATION", FileMode.Open))
          {
             image = await endpoint.UploadImageStreamAsync(fs);
          }
                Debug.Write("Image uploaded. Image Url: " + image.Link);
         }
         catch (ImgurException imgurEx)
         {
                Debug.Write("Error uploading the image to Imgur");
                Debug.Write(imgurEx.Message);
         }
     }

また、あなたがここにすべての参照を見つけることができます: Imgur.API NuGet

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top