【问题标题】:URL error : To get JSON from a WebService on Android StudioURL 错误:从 Android Studio 上的 WebService 获取 JSON
【发布时间】:2015-04-08 13:04:40
【问题描述】:


我是 Android Studio 的初学者,我在从 WebService 调用 Json 时遇到问题。
我使用此代码尝试获取我的数据:

public static ArrayList<User> getUsers() {
    ArrayList<User> users = new ArrayList<User>();
    try {
        String myurl = "http://localhost/MyWebService/getUsers";

        URL url = new URL(myurl);
        HttpURLConnection connection = (HttpURLConnection) url.openConnection();
        connection.connect();
        InputStream inputStream = connection.getInputStream();

        String result = InputStreamOperations.InputStreamToString(inputStream);
        JSONObject jsonObject = new JSONObject(result);
        JSONArray array = new JSONArray(jsonObject.getString("UserDB"));

        for (int i = 0; i < array.length(); i++) {
            JSONObject obj = new JSONObject(array.getString(i));
            User user = new User(obj.getString("name"), obj.getString("firstname"));
            users.add(user);
        }
    } catch (Exception e) {
        e.printStackTrace();
    }
    return users;
}

但在调试模式上,它会在“URL url = new URL(myurl);”处停止
事件日志消息:“ConcurrentModificationException:null”
你知道这个问题的原因吗? (对不起我的英语^^')
感谢您的帮助。

【问题讨论】:

  • 是否只在调试模式下出现?
  • 在 google 上查看网络服务教程。
  • 是的,我的方法在我单击按钮时被调用。当我运行我的应用程序时,该按钮什么也不做,而他应该在 listView 上添加数据。
  • 你能访问这个吗?然后发布输出。

标签: java android json web-services url


【解决方案1】:

当您想从模拟器连接到本地计算机上托管的 WebService 时,您必须调用 10.0.2.2 而不是 localhost (android developer guide),因为 localhost 将引用模拟器本身。

此外,您还需要AndroidManifest.xml 中的互联网权限。

<uses-permission android:name="android.permission.INTERNET" />

【讨论】:

  • 谢谢我现在发现这个异常:EACCES(权限被拒绝)
  • 这两个东西你适配了吗,是right place的权限吗?因为异常似乎与(外部)存储的处理更相关
【解决方案2】:

看看改造库here。它是处理 REST Web 服务通信并避免繁琐的解析代码的好工具。只需添加依赖项,在 Android Studio 中将是:

编译'com.squareup.retrofit:retrofit:1.6.1'

编译'com.google.code.gson:gson:2.3'

该链接上的示例很容易让您入门。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2022-06-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多