获取JSONException:字符0处的输入结束

时间:2012-01-05 09:46:40

标签: android json

我在php中有一个API,它以JSON格式发送数据。 我做了以下代码,当我在wifi上时工作正常。 但是当我想要在3g时从API下载数据时,我收到以下异常: JSONException:

的字符0处的输入结束

我不知道为什么它可以在wifi上运行,但它不适用于移动互联网。 我的代码:

        JSONObject json = getJSONfromURL("http://api.myurl.com/users.json");

        JSONArray objects = json.getJSONArray("objects");
        db.setLockingEnabled(false);
        db.beginTransaction();

        for (int i = 0; i < objects.length(); i++) {
            JSONObject e = objects.getJSONObject(i);

            if(e.getString("UID") != "-1"){
                ContentValues values = new ContentValues();
                //DO DATABASE INSERT. REMOVED THIS CODE FOR READABILITY
                alldata_mProgressDialog.incrementProgressBy(1);
            }
        }

任何可以帮助我的人?​​

6 个答案:

答案 0 :(得分:39)

你可能会得到一个空白的回复。它不是null但响应是空的。所以你得到这个错误而不是Nullpointer异常

答案 1 :(得分:3)

您可能正在使用默认值获取默认响应。当您未正确发送请求或发送错误参数时,会出现此类错误。检查 This

答案 2 :(得分:3)

检查您是否正在请求使用Internet的权限。

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

在Android清单中

Permissions overview @ https://developer.android.com处查看其他人。

答案 3 :(得分:0)

有时会导致此错误,因为json编码功能要求所有传入数据都采用UTF-8编码。

尝试将mysqli_set_charset($con, 'utf8');添加到您的php中。

答案 4 :(得分:0)

当响应为null时会出现这种错误.Print Json在logcat中重复

Log.e(“回复”,“”+回复),或者您也可以查看邮递员的回复。

答案 5 :(得分:0)

在通过USB在Android Studio上调试android应用时,出现此错误。一台平板电脑的连接尝试失败,但我的常规测试平板电脑却没有尝试。原来,失败是由于我没有在发生故障的计算机上启用WIFI设置。因此,我启用了WIFI并将其连接到服务器正常。