2012-04-24 18 views
2

画像をアップロードするためにimgur apiのサンプルの1つを使用していますが、画像を見るためにアップロードリンクを取得する方法に固執しています。java経由で画像をアップロードした後にimgurアップロードリンクを取得する

これは私がこれまでに持っていたことであり、それがアップロードできると言うことから、それ自体はアップロードへのリンクを得なければそれほど有用ではありません。

これはこれまで私が行ったことです。

String IMGUR_POST_URI = "http://api.imgur.com/2/upload.xml"; 
    String IMGUR_API_KEY = "MY API KEY"; 

    String file = "C:\\Users\\Shane\\Pictures\\Misc\\001.JPG"; 
    try 
    { 
     // Creates Byte Array from picture 
     ByteArrayOutputStream baos = new ByteArrayOutputStream(); 
     System.out.println("Writing image..."); 
     ImageIO.write(getBufferedImageFromImage(Toolkit.getDefaultToolkit().createImage(file)), "png", baos); 
     URL url = new URL(IMGUR_POST_URI); 
     System.out.println("Encoding..."); 
     //encodes picture with Base64 and inserts api key 
     String data = URLEncoder.encode("image", "UTF-8") + "=" + URLEncoder.encode(Base64.encodeBase64String(baos.toByteArray()).toString(), "UTF-8"); 
     data += "&" + URLEncoder.encode("key", "UTF-8") + "=" + URLEncoder.encode(IMGUR_API_KEY, "UTF-8"); 
     System.out.println("Connecting..."); 
     // opens connection and sends data 
     URLConnection conn = url.openConnection(); 
     conn.setDoOutput(true); 
     OutputStreamWriter wr = new OutputStreamWriter(conn.getOutputStream()); 
     System.out.println("Sending data..."); 
     wr.write(data); 
     wr.flush(); 
    } 
    catch(Exception e){e.printStackTrace();} 

答えて

1

imgurのドキュメントによると、アップロードに「応答」するxmlまたはjsonを返すべきです。

この小さなスニペットは、URL接続に書き込んだ後のレスポンスの例です。多分役立つかもしれません。これはimgurに固有のものではありませんが、コードは似ているはずです。

public static void main(String[] args) throws Exception { 

    String stringToReverse = URLEncoder.encode(args[1], "UTF-8"); 

    URL url = new URL(args[0]); 
    URLConnection connection = url.openConnection(); 
    connection.setDoOutput(true); 

    OutputStreamWriter out = new OutputStreamWriter(
            connection.getOutputStream()); 
    out.write("string=" + stringToReverse); 
    out.close(); 

    BufferedReader in = new BufferedReader(
           new InputStreamReader(
           connection.getInputStream())); 
    String decodedString; 
    while ((decodedString = in.readLine()) != null) { 
     System.out.println(decodedString); 
    } 
    in.close(); 
} 
+0

ありがとうございます!それはそれを解決しました!今、いくつかの古い正規表現の建物を楽しくする。 – ShaneIsrael

関連する問題