+权限
public class NetWorkUtils { private static final String JSON_URL = "http://www.93.gov.cn/93app/data.do";//? private URL url; private HttpURLConnection urlConn; private String data = ""; public String getJsonByGet(final String param){ try { url = new URL(JSON_URL + param); urlConn = (HttpURLConnection) url.openConnection(); urlConn.setConnectTimeout(5000); urlConn.setReadTimeout(5000); int responseCode = urlConn.getResponseCode(); if(responseCode == 200){ InputStream inputStream = urlConn.getInputStream(); byte[] buffer = new byte[1024]; int length = 0; while((length=inputStream.read(buffer)) != -1){ String str = new String(buffer,0,length); data += str; } Log.d("main", data); } } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } return data; } public String getJsonByPost(final String param){ try { url = new URL(JSON_URL); urlConn = (HttpURLConnection) url.openConnection(); urlConn.setConnectTimeout(5000); urlConn.setReadTimeout(5000); //post请求的设置,与get的不同的地方 urlConn.setRequestMethod("POST");//设置 为post请求 urlConn.setDoInput(true); urlConn.setDoOutput(true); //把参数param设置到请求的正文中 OutputStream outputStream = urlConn.getOutputStream();//得到请求的输出流,把参数输出给请求 outputStream.write(param.getBytes()); outputStream.flush();//刷新,推送过去 int responseCode = urlConn.getResponseCode(); if(responseCode == 200){ InputStream inputStream = urlConn.getInputStream(); byte[] buffer = new byte[1024]; int length = 0; while((length=inputStream.read(buffer)) != -1){ String str = new String(buffer,0,length); data += str; } Log.d("main", data); } } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } return data; } } MainActivity.java public class MainActivity extends Activity { private ListView lv; private MyAdapter adapter; private Button btn1,btn2; private String data; private NetWorkUtils utils; Handler handler = new Handler(){ public void handleMessage(android.os.Message msg) { if(msg.what == 0 ){ // String str = (String) msg.obj; //tv.setText(data); Gson gs = new Gson(); SuperClass superC = gs.fromJson(data, SuperClass.class); adapter = new MyAdapter(superC.getData()); lv.setAdapter(adapter); } }; }; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); utils = new NetWorkUtils(); lv = (ListView) findViewById(R.id.lv); btn1 = (Button) findViewById(R.id.btn1); btn2 = (Button) findViewById(R.id.btn2); btn1.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { // TODO Auto-generated method stub //通过次线程,调用网络请求工具类的get方法,获得网络信息 new Thread(){ public void run() { data = utils.getJsonByGet("?channelId=2&startNum=2"); handler.sendEmptyMessage(0); }; }.start(); } }); btn2.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { // TODO Auto-generated method stub new Thread(){ public void run() { 通过次线程,调用网络请求工具类的post方法,获得网络信息 data = utils.getJsonByPost("channelId=2&startNum=2"); handler.sendEmptyMessage(0); }; }.start(); } }); } class MyAdapter extends BaseAdapter{ private ArrayList<News> news; public MyAdapter(ArrayList<News> news) { super(); this.news = news; } @Override public int getCount() { // TODO Auto-generated method stub return news.size(); } @Override public Object getItem(int position) { // TODO Auto-generated method stub return null; } @Override public long getItemId(int position) { // TODO Auto-generated method stub return 0; } @Override public View getView(int position, View convertView, ViewGroup parent) { // TODO Auto-generated method stub ViewHolder holder = null; if(convertView == null){ holder = new ViewHolder(); convertView = View.inflate(MainActivity.this, R.layout.list_item_layout, null); holder.name = (TextView) convertView.findViewById(R.id.name); holder.rn = (TextView) convertView.findViewById(R.id.rn); holder.time = (TextView) convertView.findViewById(R.id.time); convertView.setTag(holder); }else{ holder = (ViewHolder) convertView.getTag(); } News nn = news.get(position);//得到要显示的 holder.name.setText(nn.getFROMNAME()); holder.rn.setText(nn.getRN()); holder.time.setText(nn.getSHOWTIME()); return convertView; } class ViewHolder{ TextView name,rn,time; } } @Override public boolean onCreateOptionsMenu(Menu menu) { // Inflate the menu; this adds items to the action bar if it is present. getMenuInflater().inflate(R.menu.activity_main, menu); return true; } } <Button android:id="@+id/btn1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="get请求" /> <Button android:id="@+id/btn2" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_toRightOf="@+id/btn1" android:layout_alignBottom="@+id/btn1" android:text="post请求" /> <ListView android:id="@+id/lv" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_below="@+id/btn1" android:layout_centerHorizontal="true" />
item
<TextView android:id="@+id/name" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentLeft="true" android:layout_alignParentTop="true" android:layout_marginLeft="20dp" android:layout_marginTop="16dp" android:text="TextView" /> <TextView android:id="@+id/rn" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignLeft="@+id/name" android:layout_below="@+id/name" android:layout_marginTop="21dp" android:text="TextView" /> <TextView android:id="@+id/time" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_below="@+id/name1" android:layout_centerHorizontal="true" android:text="TextView" />
