유형 목록은 일반적이지 않습니다. 인수 [HTTPClient]로 매개 변수화 할 수 없습니다.
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();
}
}
}
그래서 저는 그 코드를 가지고 있고 Java https 오류를 사용하여 Imgur v3에 업로드 한 결과 50 행에 "List"라는 오류가 표시됩니다.
유형 목록은 일반적이지 않습니다. 인수로 매개 변수화 할 수 없습니다.
이 문제를 해결하려면 어떻게해야합니까?
내가 사용하고 http://hc.apache.org/httpclient-3.x/을 자신의 V3 API를 사용하여 imgur 할 이미지를 업로드 할 수 있습니다.
편집 : 가져 오기를 변경 한 후 이제 이러한 오류가 발생합니다.
그것은 그것을 해결하지만 두 가지 더 많은 오류를 제공합니다.
nameValuePairs.add(new BasicNameValuePair("image", dataImage));
List 형식의 add (NameValuePair) 메서드는 인수 (BasicNameValuePair)에 적용 할 수 없습니다.
과
post.setEntity(new UrlEncodedFormEntity(nameValuePairs));
생성자 UrlEncodedFormEntity (List)가 정의되지 않았습니다.
가져 오기에 미묘한 오류가 있습니다.
import java.awt.List;
그것은해야한다:
import java.util.List;
The problem is that both awt
and Java's util package provide a class called List
. The former is a display element, the latter is a generic type used with collections. Furthermore, java.util.ArrayList
extends java.util.List
, not java.awt.List
so if it wasn't for the generics, it would have still been a problem.
Edit: (to address further questions given by OP) As an answer to your comment, it seems that there is anther subtle import issue.
import org.omg.DynamicAny.NameValuePair;
should be
import org.apache.http.NameValuePair
nameValuePairs
now uses the correct generic type parameter, the generic argument for new UrlEncodedFormEntity
, which is List<? extends NameValuePair>
, becomes valid, since your NameValuePair is now the same as their NameValuePair. Before, org.omg.DynamicAny.NameValuePair
did not extend org.apache.http.NameValuePair
and the shortened type name NameValuePair
evaluated to org.omg...
in your file, but org.apache...
in their code.
Try to import
java.util.List;
instead of
java.awt.List;
Adding java.util.list
will resolve your problem because List interface which you are trying to use is part of java.util.list
package.
I got the same error, but when i did as below, it resolved the issue.
Instead of writing like this:
List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>(1);
use the below one:
ArrayList<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>(1);
ReferenceURL : https://stackoverflow.com/questions/17385961/the-type-list-is-not-generic-it-cannot-be-parameterized-with-arguments-httpcli
'developer tip' 카테고리의 다른 글
지정된 시간 후에 URL로 JQuery 리디렉션 (0) | 2021.01.09 |
---|---|
link_to Ruby on Rails로 확인 메시지를 추가하는 방법 (0) | 2021.01.09 |
onRequestPermissionsResult가 대화 조각에서 호출되지 않습니다. (0) | 2021.01.09 |
TWIG 템플릿에서 세션에 액세스 (0) | 2021.01.09 |
Swift 내에서 프로그래밍 방식으로 탭 간 전환 (0) | 2021.01.09 |