联网获取Json并且解析

来源:互联网 发布:windows正版 编辑:程序博客网 时间:2024/05/17 22:57
package com.example.second;

import java.io.IOException;
import java.util.List;

import org.apache.http.HttpEntity;
import org.apache.http.HttpRequest;
import org.apache.http.HttpResponse;
import org.apache.http.StatusLine;
import org.apache.http.client.ClientProtocolException;
import org.apache.http.client.HttpClient;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.util.EncodingUtils;
import org.apache.http.util.EntityUtils;

import com.example.bean.Bean;
import com.example.bean.MyAdapter;
import com.example.bean.MyList;
import com.google.gson.Gson;

import android.os.Bundle;
import android.app.Activity;
import android.content.Entity;
import android.content.Intent;
import android.util.Log;
import android.view.Menu;
import android.view.View;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.ListView;
import android.widget.Toast;

public class MainActivity extends Activity {

    private static final String TAG = "MainActivity";
    private List<MyList> list;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        new Thread() {
            public void run() {
                getInfo();

            };
        }.start();

    }

    private void getInfo() {
        String uri = "http://api.sina.cn/sinago/list.json?channel=hdpic_story&adid=4ad30dabe134695c3d7c3a65977d7e72&from=6042095012&chwm=12050_0001&imei=867064013906290&uid=802909da86d9f5fc&p=1";
        HttpClient httpClient = new DefaultHttpClient();
        HttpPost httpPost = new HttpPost(uri);
        try {
            HttpResponse httpResponse = httpClient.execute(httpPost);
            StatusLine line = httpResponse.getStatusLine();

            int statusCode = line.getStatusCode();
            if (statusCode == 200) {
                HttpEntity entity = httpResponse.getEntity();
                String string = EntityUtils.toString(entity);
                Log.i(TAG, string);
                Gson gson = new Gson();
                final Bean fromJson = gson.fromJson(string, Bean.class);

                String title = fromJson.data.list.get(3).title;
                list = fromJson.data.list;
                Log.i("Titl[e", title);
                runOnUiThread(new Runnable() {

                    private ListView listView;

                    @Override
                    public void run() {
                        listView = (ListView) findViewById(R.id.listview);
                        listView.setAdapter(new MyAdapter(MainActivity.this,
                                list));
                        listView.setOnItemClickListener(new OnItemClickListener() {

                            @Override
                            public void onItemClick(AdapterView<?> arg0,
                                    View arg1, int arg2, long arg3) {
                                String link = fromJson.data.list.get(arg2)
                                        .getLink();
                                String title = fromJson.data.list.get(arg2)
                                        .getTitle();
                                String pic = fromJson.data.list.get(arg2)
                                        .getPic();
                                String intro = fromJson.data.list.get(arg2)
                                        .getIntro();
                                Intent intent = new Intent(MainActivity.this,
                                        SecondActivity.class);
                                intent.putExtra("key", link);
                                intent.putExtra("title", title);
                                intent.putExtra("intro", intro);
                                intent.putExtra("pic", pic);
                                startActivity(intent);
                            }
                        });
                    }
                });

            } else {
                Toast.makeText(MainActivity.this, "连接服务器失败!", 0).show();
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

}
0 0
原创粉丝点击