我是Android新手,对android的了解不是很丰富。
我正在尝试在 android 中实现 Json 调用,我正在使用愚蠢的代码来获取数据库中所有联系人的列表。
package com.example.library;
import java.io.BufferedReader;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.io.UnsupportedEncodingException;
public class SecondActivity extends Activity {
Button show_data;
JSONObject my_json_obj;
String path,firstname,lastname;
{
path = "http://192.168.71.129:3000/contacts";
HttpClient client = new DefaultHttpClient();
HttpConnectionParams.setConnectionTimeout(client.getParams(), 10000);
HttpEntity entity;
HttpResponse response = null;
HttpURLConnection urlconn;
my_json_obj = new JSONObject();
}
}
我不知道这是否是正确的方法,但这段代码已经存在于另一个项目中,我只是做了一些更改。
请指导我完成这个,因为我已经浏览了许多 stackoverflow 和谷歌答案,但它非常令人困惑,因为我只是一个初学者并且不了解 android 中的 json 调用。
最佳答案
我可以给你一大段代码然后说“嘿试试这个”,但就像你说的你对 Android 很陌生所以我根本不会。 我认为你可以通过尝试然后简单地复制粘贴代码(大多数时候)来学习更好的东西,这更有值(value)
在进行网络请求和解析数据时,您需要考虑几件事情。
网络请求你必须始终在一个单独的线程中然后在 UI 线程中执行此操作,因为如果你不这样做你会得到一个 NetworkOnMainUiThreadException 如果我的头脑是正确的。
这同样适用于解析您从请求中检索到的数据。 我在您当前的代码中没有看到任何数据解析,但我只是想提醒您一下,因为您可能会在应用程序的某个时刻执行此操作。
Here您可以找到如何使用 AsyncTask 进行线程处理的教程。这是在 Android 中应该如何完成的“方式”,它们确实让您轻松完成。
阅读该教程时,您将获得完成本类(class)内容的基本知识。
当您了解线程的概念以及如何使用这项新添加的技能时,我建议您阅读并跟进此json 教程here .
希望对你有帮助
关于android - 在 android 中进行 Json 调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16236772/