【问题标题】:Retrieving imgur upload link after uploading an image through java通过java上传图片后检索imgur上传链接
【发布时间】:2012-04-24 22:41:50
【问题描述】:

所以我正在使用 imgur api 示例之一来上传图片,但我一直坚持如何检索上传链接来查看图片。

这是我目前所拥有的,据我所知它会上传它,但如果没有上传链接,它本身并不是很有用。

这是我迄今为止所拥有的。

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

【问题讨论】:

    标签: java upload hyperlink imgur


    【解决方案1】:

    根据 imgur 文档,您应该返回带有“响应”上传的 xml 或 json。

    我发现这个小sn-p代码是一个在写入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();
    }
    

    【讨论】:

    • 谢谢!那解决了!现在来做一些有趣的旧正则表达式构建。
    猜你喜欢
    • 2014-05-09
    • 2015-01-12
    • 2018-02-03
    • 1970-01-01
    • 2016-10-25
    • 2016-06-13
    • 1970-01-01
    • 2017-10-08
    • 2010-12-21
    相关资源
    最近更新 更多