import java.awt.List;
import java.awt.image.BufferedImage;
import java.io.BufferedReader;
import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.InputStreamReader;
import java.util.ArrayList;
import javax.imageio.ImageIO;
import org.apache.commons.codec.binary.Base64;
import org.apache.http.HttpResponse;
import org.apache.http.client.HttpClient;
import org.apache.http.client.entity.UrlEncodedFormEntity;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.message.BasicNameValuePair;
import org.omg.DynamicAny.NameValuePair;
public class Upload {
public static void main (String[] args) {
System.out.println(Imgur("C:\\Users\\username\\Desktop\\image.jpg", "clientID"));
}
public static String Imgur (String imageDir, String clientID) {
//create needed strings
String address = "https://api.imgur.com/3/image";
//Create HTTPClient and post
HttpClient client = new DefaultHttpClient();
HttpPost post = new HttpPost(address);
//create base64 image
BufferedImage image = null;
File file = new File(imageDir);
try {
//read image
image = ImageIO.read(file);
ByteArrayOutputStream byteArray = new ByteArrayOutputStream();
ImageIO.write(image, "png", byteArray);
byte[] byteImage = byteArray.toByteArray();
String dataImage = new Base64().encodeAsString(byteImage);
//add header
post.addHeader("Authorization", "Client-ID" + clientID);
//add image
List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>(1);
nameValuePairs.add(new BasicNameValuePair("image", dataImage));
post.setEntity(new UrlEncodedFormEntity(nameValuePairs));
//execute
HttpResponse response = client.execute(post);
//read response
BufferedReader rd = new BufferedReader(new InputStreamReader(response.getEntity().getContent()));
String all = null;
//loop through response
while (rd.readLine() != null) {
all = all + " : " + rd.readLine();
}
return all;
}
catch (Exception e){
return "error: " + e.toString();
}
}
}
所以我有那个代码,我是通过上传到Imgur v3使用Javahttps错误得到的,我在第50行得到一个错误,因为“列表”告诉我
类型列表不是泛型的;它不能用参数参数化
我能做些什么来解决这个问题?
我正在使用http://hc.apache.org/httpclient-3.x/并希望使用v3 API将图像上传到imgur。
编辑:更改导入后,我现在收到这些错误。
这就解决了这个问题,但又给了我两个错误。
nameValuePairs.add(new BasicNameValuePair("image", dataImage));
类型列表中的方法add(NameValuePair)不适用于参数(BasicNameValuePair)
和
post。setEntity(新的UrlEncodedFormEntity(nameValuePairs))
构造函数UrlEncodedFormEntity(List)未定义
添加java.util.list
将解决您的问题,因为您尝试使用的List接口是java.util.list
包的一部分。
尝试导入
java.util.List;
而不是
java.awt.List;
您的导入有一个微妙的错误:
import java.awt.List;
它应该是:
import java.util.List;
问题是awt
和Java的util包都提供了一个名为List
的类。前者是一个显示元素,后者是用于集合的泛型类型。此外,java.util.ArrayList
扩展了java.util.List
,而不是java.awt.List
,所以如果不是泛型,它仍然是一个问题。
编辑:(回答OP提出的进一步问题)作为对您评论的回答,似乎还有另一个微妙的重要问题。
import org.omg.DynamicAny.NameValuePair;
应该是
import org.apache.http.NameValuePair
现在,名称值对使用了正确的泛型类型参数,即新URLEncodedFormity的泛型参数,即列表
问题内容: import java.awt.List; import java.awt.image.BufferedImage; import java.io.BufferedReader; import java.io.ByteArrayOutputStream; import java.io.File; import java.io.InputStreamReader; import java
我试图制作一个简单的饼图,但在工厂构造函数中使用未来的数据时遇到了问题。错误信息显示: 预期有2个位置参数,但找到1个。 参数类型“未来” 以下是代码: 编辑:我能够使用Future Builder修复此问题。我的代码更改:
我尝试使用数据表并实现我的函数从这个Cucumber数据表中获取值,我使用List 公共无效my函数(DataTable dt)抛出可抛出{ 列表 driver.findElement(By.id(“name”)).sendKeys(list.get(0).get(0)) driver.findElement(按.id(“年龄”)).sendKeys(list.get(0.get(1)) driv
本文向大家介绍不能做switch()的参数类型是:相关面试题,主要包含被问及不能做switch()的参数类型是:时的应答技巧和注意事项,需要的朋友参考一下 switch 的参数不能为实型。
问题内容: 在下面的示例中,为什么编译器能够为in中的第一次调用推断出通用参数,而在第二次调用中却无法推断出通用参数?我正在使用Java 6。 (编译错误为 Nonsense.Bar类型的func(Nonsense.Foo)方法不适用于参数(Nonsense.Foo) )。 注意:我了解编译器错误可以通过test()中的第三行来解决-我很好奇是否存在阻止编译器推断类型的特定限制。这 似乎 对我有足