Android YouTube V3 API无效

时间:2017-09-21 20:00:05

标签: youtube-api youtube-data-api

我正在从我的Android设备上点击以下网址。

网址:https://www.googleapis.com/youtube/v3/search?key=MY_KEY&channelId=UCoWgc1mqe-bcfb_lem7EyOg&part=snippet,id&order=date&maxResults=50

回应: ] r 8 }ϯ@ e?䋕 }ɗj %OO(@ {{ 1}} BM; VQ:FA [8KRlZ [T]඘JL`? G1h䬑T [}安永] qt_xl.e / VOH

获取YouTube视频列表。它之前工作正常,但有时它的响应在从浏览器点击时无效,效果很好。

请帮帮我!!

2 个答案:

答案 0 :(得分:1)

我找到了解决方案,我正在使用循环j库(对于http请求)旧版本

只是改变

编译' com.loopj.android:android-async-http:1.4.8'

编译' com.loopj.android:android-async-http:1.4.9'

它解决了我的问题

答案 1 :(得分:0)

请参阅我的相关问题here(但在C#中)及其答案,以便了解我的意思。然后,您必须搜索decompress gzip android的示例,并查看现有资源以实现此目的。

请注意,API并不总是以gzip格式发送响应。所以请检查响应是否真的在gzip中。

对于普通解压缩,您可以使用以下方法:

public static String decompress(byte[] compressed) throws IOException {
    final int BUFFER_SIZE = 32;
    ByteArrayInputStream bis = new ByteArrayInputStream(compressed);
    GZIPInputStream gis = new GZIPInputStream(bis, BUFFER_SIZE);
    StringBuilder s = new StringBuilder();
    byte[] data = new byte[BUFFER_SIZE];
    int bytesRead;
    while ((bytesRead = gis.read(data)) != -1) {
        s.append(new String(data, 0, bytesRead));
    }
    gis.close();
    bis.close();
    return s.toString();
}

(此代码取自Vyshnavi's answer