我是Uploadcare的新手。我正在尝试从Uploadcare中检索一个文件UUID,然后使用该UUID将图像复制到我的S3存储桶中。我正在使用git-hub:here上提供的Uploadcare API。
代码非常容易实现。这就是我所拥有的:
package javaapplication2;
import com.uploadcare.api.Client;
import com.uploadcare.data.CopyFileData;
public class UploadAPITest {
public static void main(String[] args) {
Client client = new Client("mypublicKey", "myprivateKey");
CopyFileData copyFile = client.copyFile("d5e97aca-f6d9-47ea-8c76-1fe36d093b2d", "messagePicUploadCenter");
System.out.println("result: " + copyFile.result);
}这段代码编译时没有任何问题。然而,当我运行它时,我看到的错误是:
enterException in thread "main"
com.uploadcare.exceptions.UploadcareNetworkException: Network failure!
at com.uploadcare.api.RequestHelper.executeQuery(RequestHelper.java:108)
at com.uploadcare.api.Client.copyFile(Client.java:221)
at javaapplication2.UploadAPITest.main(UploadAPITest.java:25)
Caused by: com.fasterxml.jackson.databind.JsonMappingException: Can not instantiate value of type [simple type, class com.uploadcare.data.FileData] from String value; no single-String constructor/factory method (through reference chain: com.uploadcare.data.CopyFileData["result"])
at com.fasterxml.jackson.databind.deser.std.StdValueInstantiator._createFromStringFallbacks(StdValueInstantiator.java:422)
at com.fasterxml.jackson.databind.deser.std.StdValueInstantiator.createFromString(StdValueInstantiator.java:298)
at com.fasterxml.jackson.databind.deser.BeanDeserializer.deserializeFromString(BeanDeserializer.java:424)
at com.fasterxml.jackson.databind.deser.BeanDeserializer.deserialize(BeanDeserializer.java:129)
at com.fasterxml.jackson.databind.deser.SettableBeanProperty.deserialize(SettableBeanProperty.java:375)
at com.fasterxml.jackson.databind.deser.impl.FieldProperty.deserializeAndSet(FieldProperty.java:107)
at com.fasterxml.jackson.databind.deser.BeanDeserializer.deserializeFromObject(BeanDeserializer.java:308)
at com.fasterxml.jackson.databind.deser.BeanDeserializer.deserialize(BeanDeserializer.java:121)
at com.fasterxml.jackson.databind.ObjectMapper._readMapAndClose(ObjectMapper.java:2796)
at com.fasterxml.jackson.databind.ObjectMapper.readValue(ObjectMapper.java:1942)
at com.uploadcare.api.RequestHelper.executeQuery(RequestHelper.java:106)
... 2 moreJava结果:1
但是,在出现错误之前,我确实收到来自Uploadcare的响应:{"type":"url","result":"s3://photopatch-upload/messageImgs/d5e97aca-f6d9-47ea-8c76-1fe36d093b2d/uniqueness.jpg"}
所以我知道我已经正确地连接了Uploadcare,因为镜像实际上是被复制的。但是在复制之后,返回的JSON可能是畸形的或其他东西(我猜在这里)。
还有没有人有这个问题,或者给我一些建议?我真的很感激。我喜欢这项服务,我认为这个问题更多地与com.faster.jackson.databind库有关。下面是我在这个简单项目中使用的库的图片:http://s3.postimg.org/n37i2ts5f/image.png
发布于 2015-03-01 04:09:13
尝试使用
System.out.println("result: " + copyFile);
例如,copyFile而不是copyFile.result,后者是一个没有toString()方法的FileData实例。
https://stackoverflow.com/questions/28776196
复制相似问题