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以上是关于Android Studio 无法从 API 获取 Json的主要内容,如果未能解决你的问题,请参考以下文章
Android Studio 从 Textfield 获取价值并将其插入 API url
如何从 api 获取数据并将数据插入 Android Studio 中的 ROOM(数据库)?
尝试从asp.net web api调用获取响应时android studio中的超时异常