所以有这行代码
String data = URLEncoder.encode("image", "UTF-8") + "=" + URLEncoder.encode(Base64.encodeBase64String(baos.toByteArray()).toString(), "UTF-8");
data += "&" + URLEncoder.encode("key", "UTF-8") + "=" + URLEncoder.encode(YOUR API KEY GOES HERE, "UTF-8");
当我注册了Imgur API时,我获得了一个client_id和一个client_secret,并且想知道我在第二行的第一部分中所说的“你的API密钥就在这里”使用了哪一个“关键“我该怎么进入那里?也是上传它的网站http://imgur.com/api/upload,因为我看到了一些不同的网站。
答案 0 :(得分:7)
试试这个:
public static String getImgurContent(String clientID) throws Exception {
URL url;
url = new URL("https://api.imgur.com/3/image");
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
String data = URLEncoder.encode("image", "UTF-8") + "="
+ URLEncoder.encode(IMAGE_URL, "UTF-8");
conn.setDoOutput(true);
conn.setDoInput(true);
conn.setRequestMethod("POST");
conn.setRequestProperty("Authorization", "Client-ID " + clientID);
conn.setRequestMethod("POST");
conn.setRequestProperty("Content-Type",
"application/x-www-form-urlencoded");
conn.connect();
StringBuilder stb = new StringBuilder();
OutputStreamWriter wr = new OutputStreamWriter(conn.getOutputStream());
wr.write(data);
wr.flush();
// Get the response
BufferedReader rd = new BufferedReader(
new InputStreamReader(conn.getInputStream()));
String line;
while ((line = rd.readLine()) != null) {
stb.append(line).append("\n");
}
wr.close();
rd.close();
return stb.toString();
}
几乎就像是笨拙的笨蛋,让每一件都重新组合起来,来自世界各地的代码,至少它按预期工作,很遗憾他们没有例子......
享受。
ps:你也可以使用FILES(尚未尝试过)但你需要将图像转换为base64然后转换为utf8(以替换url)
编辑,使用此代替网址,以便上传文件:
//create base64 image BufferedImage image = null; File file = new File(imageDir); //read image image = ImageIO.read(file); ByteArrayOutputStream byteArray = new ByteArrayOutputStream(); ImageIO.write(image, "png", byteArray); byte[] byteImage = byteArray.toByteArray(); String dataImage = Base64.encode(byteImage); String data = URLEncoder.encode("image", "UTF-8") + "=" + URLEncoder.encode(dataImage, "UTF-8");
答案 1 :(得分:1)
要上传的网站是 - https://api.imgur.com/3/image,或者您也可以使用与“上传”相同的链接代替图片。
我目前正在尝试自己使用Imgur API,虽然我还没有完全正确(我似乎无法解析URL响应)我已经查看了相当多的代码示例。你肯定在使用API的第3版吗?
因为API的主页说您应该以“Authorization Client-ID YOUR_CLIENT_ID”格式提供您的客户端ID,而不是像您一样使用“密钥”。
修改:您可能会发现以下内容有用 - Anonymous Uploading File object to Imgur API (JSON) gives Authentication Error 401