小白想用安卓上传图片到七牛,先用java试了下,但一直抛出异常,下面是我代码,后面给出异常信息
import java.awt.image.BufferedImage;
import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.IOException;
import javax.imageio.ImageIO;
import com.qiniu.common.QiniuException;
import com.qiniu.http.Response;
import com.qiniu.storage.UploadManager;
import com.qiniu.util.Auth;
public class TestQiniu {
public static void main(String[] args) {
String uptoken=getUptoken();
System.out.println(uptoken);
BufferedImage bufferedImage = null;
try {
bufferedImage = ImageIO.read(new File("test.png"));
} catch (IOException e) {
e.printStackTrace();
}
ByteArrayOutputStream baos=new ByteArrayOutputStream();
try {
ImageIO.write(bufferedImage, "png", baos);
} catch (IOException e) {
e.printStackTrace();
}
new TestQiniu().upLoadPic(baos.toByteArray(), "test1", uptoken);
}
private static String getUptoken() {
Auth auth = Auth.create("8EqgYr4A18xyeUzWdDHt6OKTKJ5wW9mttLKiobF_",
"gFxrGJAGII497kyncBlZ7_V1GMEgqRW00ytXxg8q");
String uptoken = auth.uploadToken("agriculturetest","test_pic",3600,null);
return uptoken;
}
public void upLoadPic(byte[] data,String key,String token){
UploadManager uploadManager=new UploadManager();
try {
Response response= uploadManager.put(data, key, token);
System.out.println(response.isOK());
} catch (QiniuException e) {
e.printStackTrace();
}
}
}
Exception in thread "main" java.lang.IncompatibleClassChangeError: Found class com.squareup.okhttp.Connection, but interface was expected
at com.qiniu.http.Client$1.intercept(Client.java:39)
at com.squareup.okhttp.internal.http.HttpEngine$NetworkInterceptorChain.proceed(HttpEngine.java:868)
at com.squareup.okhttp.internal.http.HttpEngine.readResponse(HttpEngine.java:749)
at com.squareup.okhttp.Call.getResponse(Call.java:268)
at com.squareup.okhttp.Call$ApplicationInterceptorChain.proceed(Call.java:224)
at com.squareup.okhttp.Call.getResponseWithInterceptorChain(Call.java:195)
at com.squareup.okhttp.Call.execute(Call.java:79)
at com.qiniu.http.Client.send(Client.java:195)
at com.qiniu.http.Client.multipartPost(Client.java:175)
at com.qiniu.http.Client.multipartPost(Client.java:143)
at com.qiniu.storage.FormUploader.upload(FormUploader.java:52)
at com.qiniu.storage.UploadManager.put(UploadManager.java:126)
at com.qiniu.storage.UploadManager.put(UploadManager.java:104)
at test.TestQiniu.upLoadPic(TestQiniu.java:46)
at test.TestQiniu.main(TestQiniu.java:32)
之前有帖子说是java-sdk 上传超时可能是由于 okhttp,okio 的版本问题引起,更换 okhttp 2.3 okio 1.6试下
我换了试过,也没用,还是同一个错,文档看了又看实在找不到问题,求解答。谢谢
您可以参考下述博客,里面有详细的步骤以及demo,
http://blog.csdn.net/netdxy/article/details/48756887
http://blog.csdn.net/netdxy/article/details/50507197