+权限
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" />