网络请求
来源:互联网 发布:mac抹掉磁盘 编辑:程序博客网 时间:2024/06/06 00:07
第一周参考:
package com.example.yue3_zhoukao1lianxi;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.URL;
import java.net.URLConnection;
import java.util.ArrayList;
import java.util.List;
import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.client.ClientProtocolException;
import org.apache.http.client.HttpClient;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.conn.ssl.AllowAllHostnameVerifier;
import org.apache.http.conn.ssl.SSLSocketFactory;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.protocol.DefaultedHttpContext;
import org.apache.http.util.EntityUtils;
import com.example.bean.Bean;
import com.example.bean.New;
import com.google.gson.Gson;
import android.os.AsyncTask;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.app.Activity;
import android.app.ProgressDialog;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.util.Log;
import android.view.Menu;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.ImageView;
import android.widget.ListView;
import android.widget.TextView;
public class MainActivity extends Activity {
List list = new ArrayList();
private ListView lv;
private ImageView img;
private Handler handler = new Handler() {
public void handleMessage(android.os.Message msg) { img.setImageBitmap((Bitmap) msg.obj); };};@Overrideprotected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); lv = (ListView) findViewById(R.id.lv);}// httpclient方式请求public void httpclientbtn(View v) { MyTask2 myTask2 = new MyTask2(); myTask2.execute("https://api.tianapi.com/wxnew/?key=8d6e3228d25298f13af4fc40ce6c9679&num=10");}// httpurlcontent方式请求public void httpurlcontentbtn(View v) { MyTask1 myTask1 = new MyTask1(); myTask1.execute("https://api.tianapi.com/wxnew/?key=8d6e3228d25298f13af4fc40ce6c9679&num=10");}// 异步加载2class MyTask2 extends AsyncTask<String, Void, String> { private ProgressDialog pd2; private String content; @Override protected String doInBackground(String... params) { // TODO Auto-generated method stub SSLSocketFactory.getSocketFactory().setHostnameVerifier( new AllowAllHostnameVerifier()); // 1.创建出一个httpclient HttpClient hc = new DefaultHttpClient(); // 2.创建httpget对象 HttpGet httpGet = new HttpGet(params[0]); // 3.执行请求 try { // 执行请求 HttpResponse response = hc.execute(httpGet); // 得到结果码,并判断 int code = response.getStatusLine().getStatusCode(); if (code == 200) { // 5.得到结果数据 HttpEntity entity = response.getEntity(); content = EntityUtils.toString(entity); } } catch (ClientProtocolException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } return content; } @Override protected void onPostExecute(String result) { // TODO Auto-generated method stub super.onPostExecute(result); list.clear(); if (pd2 != null && pd2.isShowing()) { pd2.dismiss(); } Gson gson = new Gson(); Bean bean = gson.fromJson(result, Bean.class); List<New> newslist = bean.getNewslist(); for (New new1 : newslist) { String ctime = new1.getCtime(); String description = new1.getDescription(); String picUrl = new1.getPicUrl(); String title = new1.getTitle(); String url = new1.getUrl(); list.add(new New(ctime, description, picUrl, title, url)); } Log.i("bbb", list.toString()); Myadapter myadapter = new Myadapter(); lv.setAdapter(myadapter); } @Override protected void onPreExecute() { // TODO Auto-generated method stub super.onPreExecute(); pd2 = new ProgressDialog(MainActivity.this); pd2.setProgressStyle(ProgressDialog.STYLE_SPINNER); pd2.setMessage("正在请求,请等待。。。"); pd2.show(); }}// 异步加载1class MyTask1 extends AsyncTask<String, Void, String> { private String streamtoString = ""; private ProgressDialog pd; // 请求网络的代码 @Override protected String doInBackground(String... params) { // TODO Auto-generated method stub try { URL url = new URL(params[0]); try { HttpURLConnection openConnection = (HttpURLConnection) url .openConnection(); openConnection.setRequestMethod("GET"); openConnection.setReadTimeout(3000); openConnection.setConnectTimeout(3000); int responseCode = openConnection.getResponseCode(); if (responseCode == 200) { InputStream inputStream = openConnection .getInputStream(); streamtoString = StreamtoString(inputStream); Log.i("zzz", streamtoString); } } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } catch (MalformedURLException e) { // TODO Auto-generated catch block e.printStackTrace(); } return streamtoString; } // 在执行操作之前 @Override protected void onPreExecute() { // TODO Auto-generated method stub super.onPreExecute(); pd = new ProgressDialog(MainActivity.this); pd.setProgressStyle(ProgressDialog.STYLE_SPINNER); pd.setMessage("正在请求,请等待。。。"); pd.show(); } // 在执行操作之后 @Override protected void onPostExecute(String result) { // TODO Auto-generated method stub super.onPostExecute(result); list.clear(); if (pd != null && pd.isShowing()) { pd.dismiss(); } Gson gson = new Gson(); Bean bean = gson.fromJson(streamtoString, Bean.class); List<New> newslist = bean.getNewslist(); for (New new1 : newslist) { String ctime = new1.getCtime(); String description = new1.getDescription(); String picUrl = new1.getPicUrl(); String title = new1.getTitle(); String url = new1.getUrl(); list.add(new New(ctime, description, picUrl, title, url)); } Myadapter myadapter = new Myadapter(); lv.setAdapter(myadapter); }}// 将流转换成Stringprivate String StreamtoString(InputStream inputStream) { // TODO Auto-generated method stub BufferedReader reader = new BufferedReader(new InputStreamReader( inputStream)); String con; StringBuilder builder = new StringBuilder(); try { while ((con = reader.readLine()) != null) { builder.append(con); } reader.close(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } return builder.toString();}// 适配数据class Myadapter extends BaseAdapter { @Override public int getCount() { // TODO Auto-generated method stub return list.size(); } @Override public Object getItem(int arg0) { // TODO Auto-generated method stub return list.get(arg0); } @Override public long getItemId(int position) { // TODO Auto-generated method stub return position; } @Override public View getView(final int position, View convertView, ViewGroup parent) { // TODO Auto-generated method stub View view = View.inflate(MainActivity.this, R.layout.item_list, null); img = (ImageView) view.findViewById(R.id.img); TextView little = (TextView) view.findViewById(R.id.little); TextView time = (TextView) view.findViewById(R.id.time); new Thread() { public void run() { qingqiupic(list.get(position).getPicUrl()); }; }.start(); little.setText(list.get(position).getTitle()); time.setText(list.get(position).getCtime()); return view; } // 请求图片 private void qingqiupic(String picUrl) { // TODO Auto-generated method stub try { URL url = new URL(picUrl); try { HttpURLConnection openConnection = (HttpURLConnection) url .openConnection(); openConnection.setRequestMethod("GET"); openConnection.setReadTimeout(3000); openConnection.setConnectTimeout(3000); int responseCode = openConnection.getResponseCode(); if (responseCode == 200) { InputStream inputStream = openConnection .getInputStream(); // Log.i("aaa", inputStream.toString()); Bitmap bitmap = BitmapFactory.decodeStream(inputStream); Message msg = Message.obtain(); msg.obj = bitmap; handler.sendMessage(msg); } } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } catch (MalformedURLException e) { // TODO Auto-generated catch block e.printStackTrace(); } }}
}
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
- 网络请求
- 网络请求
- 网络请求
- 网络请求
- 网络请求
- 网络请求
- 网络请求
- 网络请求
- 网络请求
- 网络请求
- 网络请求
- 网络请求
- 网络请求
- 网络请求
- 网络请求
- 网络请求
- 网络请求
- 网络请求
- HTML中input和button解决等高不对齐的原因
- Flex弹性布局
- pandas移除重复项
- Bubble Sort MIPS
- 智能传感器深度报告:未来机器感官的百亿美元市场【附下载】| 智东西内参
- 网络请求
- spring in action 学习笔记(九)使用注解进行装配
- string-array取值到ArrayList,代码如下
- 函数定义与声明的区别
- Noip2017初赛心得(1)选择题
- Java jvm调优及相关
- Android HandlerThread 完全解析
- 源代码jar包中中文注释乱码
- java map遍历