1

我正在尝试使用最新版本的 youtube API(V3),但由于某种原因,我在调用列表函数(针对不同实体)时遇到了强制转换异常

在下面的示例中,调用执行方法时出现以下异常:

代码:

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 客户端。

谢谢,

电喷

4

1 回答 1

0

服务器端最近发生了一次重大推动,改变了许多服务的响应格式,并且并非所有客户端库都已更新以处理该问题。下周初尝试重新获取 YouTube的 Java 客户端库服务定义,然后重试。

于 2012-10-13T03:41:20.093 回答