我需要帮助使用imgur的api来上传照片并显然检索链接。
imgur api:
http://api.imgur.com/resources_anon
我可以得到需要上传的图片的uri,但是如何实现上面的api,
我下载了mime4j和httptime并将它们添加到库中,但我似乎不知道如何使用它们,
我看着这个,但它让我困惑:
Sending images using Http Post
最佳答案
只要快速看一下imgur和this question,我就想到了(几乎是两者的结合)下面的内容。如果不行就告诉我。
Bitmap bitmap = yourBitmapHere;
// Creates Byte Array from picture
ByteArrayOutputStream baos = new ByteArrayOutputStream();
bitmap.compress(Bitmap.CompressFormat.PNG, 100, baos); // Not sure whether this should be jpeg or png, try both and see which works best
URL url = new URL("http://api.imgur.com/2/upload");
//encodes picture with Base64 and inserts api key
String data = URLEncoder.encode("image", "UTF-8") + "=" + URLEncoder.encode(Base64.encode(baos.toByteArray(), Base64.DEFAULT).toString(), "UTF-8");
data += "&" + URLEncoder.encode("key", "UTF-8") + "=" + URLEncoder.encode(YOUR_API_KEY, "UTF-8");
// opens connection and sends data
URLConnection conn = url.openConnection();
conn.setDoOutput(true);
OutputStreamWriter wr = new OutputStreamWriter(conn.getOutputStream());
wr.write(data);
wr.flush();
编辑:似乎我们需要将base64.default作为第二个选项传递给base64.encode。更新了上面的示例。
编辑2:是否可以根据the oracle site使用以下代码并报告其输出:
BufferedReader in = new BufferedReader(
new InputStreamReader(
conn.getInputStream()));
String inputLine;
while ((inputLine = ic.readLine()) != null)
System.out.println(inputLine);
in.close();
关于java - 在Android上以编程方式通过imgur上传照片,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/7111751/