【发布时间】:2012-01-05 09:46:40
【问题描述】:
我在 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);
}
}
谁能帮帮我?
【问题讨论】:
-
API 位于何处?未连接到内部网络时是否可用?
-
首先,检查您是否得到准确的响应。在控制台上打印您的
json值。 -
@PareshMayani 同意,我认为 JSON 响应可能缺少某些内容。
-
@mkfinest:API 可以在线使用,它适用于每个 wifi 网络(也可以在家里)。 @PareshMayani:如果我得不到准确的回应,它在 wifi 中也不起作用?
-
@harmjanr 确保始终对您的回复进行空检查。如果我得到回应,我的思维定势应该很幸运,通过这种方法,您至少可以避免一些潜在的陷阱。