如何在Android中通过HTTPUrlConnection调用Youtube数据API,并使用标题?
我正在尝试开发我的应用程序的一部分,我想在其中获取关键字的视频详细信息。我正在使用搜索列表API。我想我对授权有问题。我正在申请401。我已尝试传递我的授权详细信息 在浏览了一些在线资源之后,我尝试了以下代码,目前我在获取输入流的行中获得了java.io.FileNotFoundException。我得到的连接代码是401 给定的代码位于AsyncTask的doInBackground中如何在Android中通过HTTPUrlConnection调用Youtube数据API,并使用标题?,android,httprequest,httpurlconnection,youtube-data-api,Android,Httprequest,Httpurlconnection,Youtube Data Api,我正在尝试开发我的应用程序的一部分,我想在其中获取关键字的视频详细信息。我正在使用搜索列表API。我想我对授权有问题。我正在申请401。我已尝试传递我的授权详细信息 在浏览了一些在线资源之后,我尝试了以下代码,目前我在获取输入流的行中获得了java.io.FileNotFoundException。我得到的连接代码是401 给定的代码位于AsyncTask的doInBackground中 String ytres=""; URL url; HttpURLConne
String ytres="";
URL url;
HttpURLConnection urlConnection = null;
try {
Log.d("youtubedata","a1");
url = new URL("https://www.googleapis.com/youtube/v3/search?part=id&q=queen%20bohemian");
Log.d("youtubedata","a2");
Log.d("youtubedata","a");
urlConnection = (HttpURLConnection) url
.openConnection();
urlConnection.setRequestMethod("GET");
urlConnection.setRequestProperty ("Authorization", "Bearer MYAPIKEY");
urlConnection.setRequestProperty ("Accept", "application/json");
Log.d("youtubedatanum",Integer.toString(urlConnection.getResponseCode()));
InputStream in = urlConnection.getInputStream();
InputStreamReader isw = new InputStreamReader(in);
int data = isw.read();
while (data != -1) {
char current = (char) data;
data = isw.read();
ytres=ytres+current;
System.out.print(current);
}
Log.d("youtubedata",ytres);
} catch (Exception e) {
e.printStackTrace();
} finally {
if (urlConnection != null) {
urlConnection.disconnect();
}
}
return ytres;
我怀疑问题在于我传递API密钥的方式。对于You tube Data API错误401 未经授权(401)的可能问题可能是
- 需要授权
- youtubeSignupRequired
希望这能帮助你 请在和浏览API文档 您将看到URL不包含作为键参数传递的所需API键 同样值得一提的是,谷歌自己的Java实现示例。然而,由于它所使用的库抽象层的原因,该代码并不能立即起到帮助作用,因为它模糊了客户机直接使用API的方式