我正在尝试使用最新版本的youtube API (V3),但由于某些原因,在调用列表函数(针对不同的实体)时,我得到了强制转换异常
在下面的示例中,当调用execute方法时,我得到了以下异常:
代码:
Youtube youTube = new Youtube.Builder(HTTP_TRANSPORT, JSON_FACTORY, credential).build();
Map<String, Channel> channels = youTube.channels().list("id").setMine("").execute().getChannels();例外:
java.lang.IllegalArgumentException: expected collection or array type but got java.util.Map<java.lang.String, com.google.api.services.youtube.model.Channel> [key channels, field private java.util.Map com.google.api.services.youtube.model.ChannelListResponse.channels]
at com.google.common.base.Preconditions.checkArgument(Preconditions.java:115) ~[guava-11.0.1.jar:na]
at com.google.api.client.json.JsonParser.parseValue(JsonParser.java:534) ~[google-http-client-1.11.0-beta.jar:1.11.0-beta]
at com.google.api.client.json.JsonParser.parse(JsonParser.java:352) ~[google-http-client-1.11.0-beta.jar:1.11.0-beta]
at com.google.api.client.json.JsonParser.parseValue(JsonParser.java:588) ~[google-http-client-1.11.0-beta.jar:1.11.0-beta]
at com.google.api.client.json.JsonParser.parse(JsonParser.java:291) ~[google-http-client-1.11.0-beta.jar:1.11.0-beta]
at com.google.api.client.json.JsonParser.parse(JsonParser.java:268) ~[google-http-client-1.11.0-beta.jar:1.11.0-beta]
at com.google.api.client.json.JsonParser.parseAndClose(JsonParser.java:143) ~[google-http-client-1.11.0-beta.jar:1.11.0-beta]
at com.google.api.client.http.json.JsonHttpParser.parse(JsonHttpParser.java:90) ~[google-http-client-1.11.0-beta.jar:1.11.0-beta]
at com.google.api.client.http.HttpResponse.parseAs(HttpResponse.java:501) ~[google-http-client-1.11.0-beta.jar:1.11.0-beta]
at com.google.api.services.youtube.Youtube$Channels$List.execute(Youtube.java:271) ~[google-api-services-youtube-v3alpha-rev13-1.8.0-beta.jar:na]有什么想法吗?我使用的是最新的java客户端。
谢谢,
Efi
发布于 2012-10-13 11:41:20
最近在服务器端进行了一次重大的推动,改变了许多服务的响应格式,但并不是所有的客户端库都进行了更新来处理这一问题。尝试在下周初重新获取Java客户端库service definition for YouTube,然后再试一次。
https://stackoverflow.com/questions/12844991
复制相似问题