httpClient
来源:互联网 发布:云豹直播源码搭建教程 编辑:程序博客网 时间:2024/05/14 16:36
modle的buil.gradle文件中添加 useLibrary 'org.apache.http.legacy'
/**
* httpClient-- apche 基金会维护的请求网络的工具;
工具类
*/
public class NetUtils { public static String getJsonByHttpClientGet (String jsonStr) { HttpClient httpClient = new DefaultHttpClient(); HttpGet get = new HttpGet(jsonStr); String json_str = ""; try { //执行请求 HttpResponse response = httpClient.execute(get); //得到结果码 int code = response.getStatusLine().getStatusCode(); //响应成功 if(code == 200){ //得到相应结果的对象 HttpEntity entity = response.getEntity(); json_str = EntityUtils.toString(entity); } } catch (IOException e) { e.printStackTrace(); } return json_str; }}
public class MainActivity extends AppCompatActivity { private String json_url = "http://gank.io/api/data/Android/10/1";//数据url ListView listView; List<JavaBean.ResultsBean> ral = new ArrayList<>(); @SuppressLint("HandlerLeak") Handler handler = new Handler(){ @Override public void handleMessage(Message msg) { super.handleMessage(msg); String s = (String) msg.obj; Gson gson = new Gson(); JavaBean javaBean = gson.fromJson(s, JavaBean.class); List<JavaBean.ResultsBean> results = javaBean.getResults(); ral.addAll(results); MyAdapter adapter = new MyAdapter(); listView.setAdapter(adapter); } }; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); listView = findViewById(R.id.lv); initData(); } private void initData() { //开启子线程 把得到的结果发送到主线程并更新UI进行展示 new Thread(new Runnable() { @Override public void run() { String s = NetUtils.getJsonByHttpClientGet(json_url); handler.sendMessage(handler.obtainMessage(0,s)); } }).start(); } private class MyAdapter extends BaseAdapter{ private ImageView img; private TextView tv; @Override public int getCount() { return ral.size(); } @Override public Object getItem(int i) { return null; } @Override public long getItemId(int i) { return 0; } @Override public View getView(int i, View view, ViewGroup viewGroup) { if(view == null){ view =View.inflate(MainActivity.this,R.layout.item,null); } img = view.findViewById(R.id.img); if(ral.get(i).getImages() !=null){ //调用显示图片 ImageLoader instance = ImageLoader.getInstance(); instance.displayImage(ral.get(i).getImages().get(0),img); }else{ } tv = view.findViewById(R.id.tv); tv.setText(ral.get(i).getDesc()); return view; } }}
阅读全文
0 0
- HttpClient
- HttpClient
- httpClient
- HttpClient
- HttpClient
- HttpClient
- HttpClient
- HttpClient
- HttpClient
- HttpClient
- HttpClient
- httpclient
- httpclient
- HttpClient
- HttpClient
- httpclient
- httpclient
- HttpClient
- MYSQL统计每年、每月、每日的数据
- 波士顿美联储高级副总裁:分布式账本可能“从根本上改变”金融业
- 索尼申请用户身份认证系统的区块链专利
- linux驱动编译进内核或模块配置
- mac os 下android studio清空配置信息
- httpClient
- 俄罗斯国有开发银行使用区块链开展电子采购项目
- Java去除List中的重复的值的多种方法
- 欧盟政府把区块链纳入300亿欧元研究基金
- datagrid中添加下拉框combobox
- 澳大利亚央行:监管区块链协议“不太有效”
- GIT科普系列5:index in git【转】
- Android沉浸式状态栏
- 黎巴嫩央行示意将推出国家支持的加密货币