微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

我正在尝试使用 json 文件从 url 获取 youtube 标题,但我没有得到任何结果,我也没有得到任何异常

如何解决我正在尝试使用 json 文件从 url 获取 youtube 标题,但我没有得到任何结果,我也没有得到任何异常

我正在尝试使用 json 文件从 url 获取 youtube 标题,但我没有得到任何结果,我也没有得到任何异常。我尝试在吐司消息中吐司异常为空/空白。任何人都可以帮助我。我的代码在这里...

String link = youtube url;
URL embededURL = null;
try {
    embededURL = new URL("http://www.youtube.com/oembed?url=" + link + "&format=json");
} catch (MalformedURLException e) {
    e.printstacktrace();
    maketoast(e.getMessage());
}
try {
    title = new JSONObject(IoUtils.toString(embededURL)).getString("title");
} catch (JSONException e) {
    e.printstacktrace();
    maketoast(e.getMessage());
} catch (IOException e) {
    e.printstacktrace();
    maketoast(e.getMessage());
}

maketoast(title);

解决方法

首先,由于您的问题标签是 android-volley,我将给您一个 android-volley 的答案。但是,有很多库可以通过像 OkHttp 这样主观上更好的方式来管理 HTTP 调用。

现在,对您的问题的简短回答是您的代码甚至没有拨打互联网电话。

更长的答案:

  1. volley dependency 添加到您的 build.gradle
dependencies {
    //... other dependencies
    implementation 'com.android.volley:volley:1.1.1'
}
  1. <uses-permission android:name="android.permission.INTERNET" /> 放入您的 AndroidManifest.xml

  2. 使应用程序调用互联网,如下所示。我调整了 the Android Volley simple example.

RequestQueue queue = Volley.newRequestQueue(context);
// sample of a URL-encoded url param,so you'll need to convert your link variable if you haven't already
String url = "https://www.youtube.com/oembed?url=http%3A%2F%2Fwww.youtube.com%2Fwatch%3Fv%3DiwGFalTRHDA&format=json";

// Request a string response from the provided URL.
StringRequest stringRequest = new StringRequest(Request.Method.GET,url,new Response.Listener<String>() {
        @Override
        public void onResponse(String response) {
            try {
                String title = new JSONObject(response).getString("title");
                Toast.makeText(context,title,Toast.LENGTH_LONG).show();
            } catch (JSONException e) {
                e.printStackTrace();
            }
        }
    },new Response.ErrorListener() {
        @Override
        public void onErrorResponse(VolleyError error) {
            Toast.makeText(context,"Error!",Toast.LENGTH_LONG).show();
        }
    });

// Add the request to the RequestQueue.
queue.add(stringRequest);

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。