[英]Uploading image to imageshack using Java
我无法使用以下代码使用Java将图像上传到imageshack。 我得到的答复是http拒绝了我的连接。 我认为我的问题是如何给图像文件,因为我不确定它是否应该是base64,byteArray等。
任何帮助将是巨大的,谢谢。
public String ImageShack (String imageDir, String myKey) {
//set file
BufferedImage image = null;
File file = new File(imageDir);
//Set namevalue pairs
List<NameValuePair> params = new ArrayList<NameValuePair>();
try
{
image = ImageIO.read(file);
ByteArrayOutputStream byteArray = new ByteArrayOutputStream();
ImageIO.write(image, "png", byteArray);
byte[] byteImage = byteArray.toByteArray();
String dataImage = new Base64().encodeAsString(byteImage);
//Assign name valued pars
params.add(new BasicNameValuePair("key", myKey));
params.add(new BasicNameValuePair("fileupload", dataImage));
params.add(new BasicNameValuePair("format", "json"));
//Create HTTPClient and Client
HttpClient httpClient = new DefaultHttpClient();
HttpPost httpPost = new HttpPost("http://www.imageshack.us/upload_api.php");
//set entities
httpPost.setEntity(new UrlEncodedFormEntity(params));
//Execute & get response
HttpResponse response = httpClient.execute(httpPost);
return response.toString();
}
catch(Exception e)
{
return "Error: " + e.getMessage();
}
}
我发现了一个类似的问题,不仅仅是针对网站的imageshack,但以下是其解决方案中的代码:
BufferedImage img = ImageIO.read(new File("temp.jpg"));
ByteArrayOutputStream baos = new ByteArrayOutputStream();
ImageIO.write(img, "jpg", baos);
baos.flush();
Base64 base = new Base64(false);
String encodedImage = base.encodeToString(baos.toByteArray());
baos.close();
encodedImage = java.net.URLEncoder.encode(encodedImage, "ISO-8859-1");
request.setRequestBody(encodedImage);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.