Android Studio 无法从 API 获取 Json

Posted

技术标签:

【中文标题】Android Studio 无法从 API 获取 Json【英文标题】:Android Studio trouble getting Json from an API 【发布时间】:2018-08-17 08:59:32 【问题描述】:

我是 android studio 和 java 的新手。我正在尝试从 API 中获取一些 Json。每次我尝试构建 URL 并将 URL 传递给我的方法 getResponseFromHttpURL 时,它都会崩溃。任何指导将不胜感激!

public class NetworkUtils 

   private static final String movieApiUrl = "http://api.themoviedb.org/3/discover/movie?sort_by=popularity.desc&api_key=XXXXXXXXXXXXXXXXXX";

   public static URL buildURL()
        Uri builtUri = Uri.parse(movieApiUrl).buildUpon()
                .build();

       URL url = null;

       try
            url = new URL(movieApiUrl);
        catch(MalformedURLException e)
            e.printStackTrace();
        

         return url;
    



    public static String getResponseFromHttpUrl(URL url) throws IOException

        HttpURLConnection urlConnection = (HttpURLConnection) url.openConnection();
        try
            InputStream in = urlConnection.getInputStream();

            Scanner scanner = new Scanner(in);
            scanner.useDelimiter("\\A");

            boolean hasInput = scanner.hasNext();
            if(hasInput)
                return scanner.next();
            else
                return null;
            
        finally
            urlConnection.disconnect();
        
    

【问题讨论】:

请提供您收到的错误消息:)。此外,您可以查看Retrofit 我收到“错误膨胀类片段” 【参考方案1】:

如果请求不在后台线程/任务中,它很可能会停止发出请求的常规活动,并且一旦完成,就无法继续它所在的位置。尝试将连接放在AsyncTask 中,这样它的常规活动才能保持正常运行。

https://developer.android.com/reference/android/os/AsyncTask.html

https://developer.android.com/training/volley/simple.html

编辑:显然错误是fragments-error-inflating-class,所以它与这个答案无关。会留下这个,因为它可以帮助有需要的人

【讨论】:

要么我使用 AsyncTask 错误,要么它仍然崩溃并出现相同的错误“错误膨胀类片段” public class FetchMovieTask extends AsyncTask @Override protected String doInBackground(URL. ..url) try String jsonMovieData1 = NetworkUtils.getResponseFromHttpUrl(url[0]);返回 jsonMovieData1; catch (Exception e) e.printStackTrace();返回空值; 该错误与HTTP请求无关,请更新您的帖子并检查此链接是否对您有帮助***.com/questions/39031669/…

以上是关于Android Studio 无法从 API 获取 Json的主要内容,如果未能解决你的问题,请参考以下文章

Android Studio 从 Textfield 获取价值并将其插入 API url

如何从 api 获取数据并将数据插入 Android Studio 中的 ROOM(数据库)?

尝试从asp.net web api调用获取响应时android studio中的超时异常

Android Studio gradle sync失败无法从服务器获取状态为405的gradle pom

来自 API 的 Android Studio 数据

Android studio从相册里面选图片无法选中