Android_网络请求数据之HttpConnection(核心代码)
来源:互联网 发布:靠谱的淘宝女装 编辑:程序博客网 时间:2024/06/05 14:13
注:a:所有网络请求的module必须在清单文件中添加访问网络权限。
b:请求网络数据的耗时操作的代码必须在子线程中完成,所以子线程请求完数据更新主线程中Ui控件必须Thread+Handler完成。
更新ui部分代码如下(MainActivity ):
package com.example.httpuriconnection;import android.graphics.Bitmap;import android.os.Bundle;import android.os.Handler;import android.os.Message;import android.support.v7.app.AppCompatActivity;import android.view.View;import android.widget.ImageView;import android.widget.ListView;import android.widget.TextView;import com.google.gson.Gson;import java.util.List;public class MainActivity extends AppCompatActivity { private String Jsondata = "http://api.expoon.com/AppNews/getNewsList/type/1/p/1"; private String imagedata = "http://img.my.csdn.net/uploads/201407/26/1406383265_8550.jpg"; private TextView text; private ImageView image; private ListView listview; private Handler handler = new Handler() { @Override public void handleMessage(Message msg) { super.handleMessage(msg); if (msg.what == 1) { String Json = (String) msg.obj; Gson gson = new Gson(); Bean bean = gson.fromJson(Json, Bean.class); String info = bean.getInfo(); int status = bean.getStatus(); List<Bean.DataBean> data = bean.getData(); MyAdapter myAdapter = new MyAdapter(data, MainActivity.this); listview.setAdapter(myAdapter); } else if (msg.what == 2) { Bitmap obj = (Bitmap) msg.obj; image.setImageBitmap(obj); } } }; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); text = (TextView) findViewById(R.id.getdata); image = (ImageView) findViewById(R.id.image); listview = (ListView) findViewById(R.id.listview); } //获取新闻Json数据 public void getdatas(View v) { //Toast.makeText(MainActivity.this,"获取新闻Json数据",Toast.LENGTH_SHORT).show(); new Thread(new Runnable() { @Override public void run() { String json = UriNetTools.getJson(Jsondata); Message message = Message.obtain(); message.obj = json; message.what = 1; handler.sendMessage(message); } }).start(); } //获取图片资源 public void images(View v) { //Toast.makeText(MainActivity.this, "获取图片资源", Toast.LENGTH_SHORT).show(); new Thread(new Runnable() { @Override public void run() { Bitmap getimage = UriNetTools.getimage(imagedata); Message message = Message.obtain(); message.obj = getimage; message.what = 2; handler.sendMessage(message); } }).start(); }}
请求数据代码如下(工具类):
package com.example.httpuriconnection;import android.graphics.Bitmap;import android.graphics.BitmapFactory;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;/** * author:Created by GengShiCong on 2017/9/27. */public class UriNetTools { //获取网络数据 public static String getJson(String uristring) { try { URL url = new URL(uristring); HttpURLConnection urlConnection = (HttpURLConnection) url.openConnection(); urlConnection.setRequestMethod("GET"); urlConnection.setConnectTimeout(8000); InputStream inputStream = urlConnection.getInputStream(); StringBuilder stringBuilder = new StringBuilder(); BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(inputStream)); String string = ""; while ((string = bufferedReader.readLine()) != null) { stringBuilder.append(string); } return stringBuilder.toString(); } catch (MalformedURLException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } return ""; } //获取网络图片 public static Bitmap getimage(String uristring) { try { URL url = new URL(uristring); HttpURLConnection urlConnection = (HttpURLConnection) url.openConnection(); int responseCode = urlConnection.getResponseCode(); if (responseCode == 200) { InputStream inputStream = urlConnection.getInputStream(); Bitmap bitmap = BitmapFactory.decodeStream(inputStream); return bitmap; } } catch (MalformedURLException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } return null; }}
阅读全文
0 0
- Android_网络请求数据之HttpConnection(核心代码)
- Android_网络请求数据之HttpClient方式(核心代码)
- Android_请求网络数据
- HttpConnection网络请求,pullToRefreshListView刷新
- 安卓网络请求 httpconnection
- Android_请求网络数据展示到Listview
- Android_请求网络HttpClient
- Android中HttpConnection+Servlet实现网络请求
- HttpConnection请求
- J2ME网络编程(httpconnection)
- j2me 网络连接 HttpConnection设置(转)
- HttpConnection的post请求发送数据,接收方出现乱码
- 网络请求数据之AsyncTask
- Httpclient之网络请求数据
- HttpClient之网络请求数据
- HttpConnection 联网请求2
- HttpConnection的get请求
- android_学习—获取网络数据(图片,html)
- SSD算法详解default box
- Python(1)前注
- 使用Raspbian图形用户界面
- 小强学Python+OpenCV之-1.4.4掩膜mask及位运算
- 搭建最简单的SpringMVC框架
- Android_网络请求数据之HttpConnection(核心代码)
- uva 12012
- Python(2)变量声明、变量类型
- knockoutjs 获得父级foreach的索引和值
- 学习Docker(2017-10-8)
- Python(3)字符串的编码、长度、占位符
- maven 不同环境打包方案
- 搞笑时刻-“一起笑吧”
- 【1】git 介绍