【发布时间】:2015-06-07 22:36:57
【问题描述】:
我对使用网络 API 非常陌生,并且在使用 Riot Games 的 API 获取 JSON 格式的数据时遇到了麻烦。代码如下:
public void readJSONFeed(String address) throws IOException {
URL url = new URL(address);
JSONObject jsonResponse = null;
HttpsURLConnection urlConnection = (HttpsURLConnection) url.openConnection();
urlConnection.setRequestMethod("GET");
urlConnection.setDoInput(true);
urlConnection.setDoOutput(false);
urlConnection.connect(); //Crashes here
BufferedInputStream in = new BufferedInputStream(urlConnection.getInputStream());
我已经标记了代码崩溃的位置(如果您在之后评论所有内容并包括该内容,它就会起作用)。我认为问题可能是我正在使用的网络服务使用 https 并且我不知道如何使连接安全。我已将 Internet 权限添加到清单文件中。
【问题讨论】:
-
你还没有连接 url.openConnection();?
-
请说明抛出了什么异常类。正如 Mark Keen 所说,
connect()调用是不必要的,getInputStream()将自动连接。但是,如果您在主线程上,任何网络操作都会抛出NetworkOnMainThreadException!那将是我的第一个嫌疑人。 -
我做了,但是删除任何一个连接都不能解决错误。不过很好,我应该在粘贴代码之前仔细查看。
-
是的,这是正确的,它是 NetworkOnMainThreadException。我查看了错误文档,看起来我现在希望能够弄清楚。谢谢!
标签: android json android-studio asp.net-web-api httpsurlconnection