Android使用Json获取数据实例【这个例子不太好,仅作参考】

来源:互联网 发布:淘宝退货流程 编辑:程序博客网 时间:2024/05/16 13:07

1 开通上网权限

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

package com.example.d;import java.io.ByteArrayOutputStream;import java.io.DataInputStream;import java.io.IOException;import java.io.InputStream;import java.net.SocketTimeoutException;import org.apache.http.HttpEntity;import org.apache.http.HttpResponse;import org.apache.http.client.methods.HttpGet;import org.apache.http.impl.client.DefaultHttpClient;import org.apache.http.params.BasicHttpParams;import org.apache.http.params.HttpConnectionParams;import org.apache.http.params.HttpParams;import org.json.JSONArray;import org.json.JSONObject;import android.app.Activity;import android.os.Bundle;import android.util.Log;public class ctivity extends Activity {    //音乐    private static String GAME_URL = "http://api.k.sohu.com/api/photos/list.go?rt=json&categoryId=2&pageSize=4&p1=NTc1MzY0OTc2NzAxNjA0MjUyMw%3D%3D";        @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);//        setContentView(R.layout.main_activity);                startGetGameListThread();            }        public  void startGetGameListThread() {        new Thread() {            @Override            public void run() {                String jsonStr = null;                int errorCode = 0;                try { // 读取数据 j                    jsonStr = getGameJsonStr(GAME_URL);                    Log.i("test", "jsonStr = " + jsonStr);                    //parseAppList(jsonStr);                } catch (Exception e) {                    e.printStackTrace();                    errorCode = 1;                } finally {                }            }        }.start();    }    private static String getGameJsonStr(String url) throws Exception {        Log.i("test", "getGameJsonStr(). url = " + url);        String jsonStr = null;        final HttpParams httpParameters = new BasicHttpParams();        HttpConnectionParams.setConnectionTimeout(httpParameters, 6000);        HttpConnectionParams.setSoTimeout(httpParameters, 6000);        final DefaultHttpClient client = new DefaultHttpClient(httpParameters);        final HttpGet get = new HttpGet(url);        HttpResponse resp;        resp = client.execute(get);        final HttpEntity entity = resp.getEntity();        final InputStream is = entity.getContent();        jsonStr = readToEnd(is);        is.close();        return jsonStr;    }    private static String readToEnd(InputStream input) throws IOException,            SocketTimeoutException {        final DataInputStream dis = new DataInputStream(input);        final byte[] stuff = new byte[1024];        final ByteArrayOutputStream buff = new ByteArrayOutputStream();        int read = 0;        while ((read = dis.read(stuff)) != -1) {            buff.write(stuff, 0, read);        }        return new String(buff.toByteArray());    }        private static void log(String msg) {        Log.v("test", msg);    }}

3 返回结果