android--------HttpURLConnection的get,post和图片加载
2016-12-05 14:24
447 查看
URLConnection是个抽象类,它有两个直接子类分别是HttpURLConnection和JarURLConnection。另外一个重要的类是URL,通常URL可以通过传给构造器一个String类型的参数来生成一个指向特定地址的URL实例。
JDK自带的请求方式,包名: java.net.HttpURLConnection;
HttpURLConnection请求的类别:
分为二类,GET与POST请求。二者的区别在于:
1: get请求可以获取静态页面,也可以把参数放在URL字串后面,传递给servlet,
2: post与get的不同之处在于post的参数不是放在URL字串里面,而是放在http请求的正文内。
效果图:
注意:使用时常出现出现NetworkOnMainThreadException错误,Android.os.NetworkOnMainThreadException错误提示的原因
原因:不允许在主线程中进行网络访问
解决:将网络访问的操作单独放到一个线程中
记得加网络权限
源码点击下载:
https://github.com/DickyQie/android-network-request
JDK自带的请求方式,包名: java.net.HttpURLConnection;
HttpURLConnection请求的类别:
分为二类,GET与POST请求。二者的区别在于:
1: get请求可以获取静态页面,也可以把参数放在URL字串后面,传递给servlet,
2: post与get的不同之处在于post的参数不是放在URL字串里面,而是放在http请求的正文内。
效果图:
public class MainActivity extends Activity implements OnClickListener { public static String urls = "http://bajie.zhangwoo.cn/app.php?platform=android&appkey=5a379b5eed8aaae531df5f60b12100cfb6dff2c1"; private TextView mTextView; private ImageView imagegvoew; String resultStr = ""; String resultStr1 = ""; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); initView(); } private void initView() { findViewById(R.id.btn1).setOnClickListener(this); findViewById(R.id.btn2).setOnClickListener(this); findViewById(R.id.btn3).setOnClickListener(this); mTextView = (TextView) findViewById(R.id.Text); imagegvoew = (ImageView) findViewById(R.id.imagegvoew); } @Override public void onClick(View v) { switch (v.getId()) { case R.id.btn1: Thread visitBaiduThread = new Thread(new VisitWebRunnable()); visitBaiduThread.start(); try { visitBaiduThread.join(); if (!resultStr.equals("")) { mTextView.setText(resultStr); } } catch (InterruptedException e) { // TODO Auto-generated catch block e.printStackTrace(); } break; case R.id.btn2: Thread visitBaiduThreads = new Thread(new VisitWebRunnables()); visitBaiduThreads.start(); try { visitBaiduThreads.join(); if (!resultStr1.equals("")) { mTextView.setText(resultStr1); } } catch (InterruptedException e) { // TODO Auto-generated catch block e.printStackTrace(); } break; case R.id.btn3: new Thread(new Runnable() { @Override public void run() { // TODO Auto-generated method stub new DownImgAsyncTask() .execute("http://avatar.csdn.net/8/6/0/2_dickyqie.jpg"); } }).start(); break; default: break; } } class DownImgAsyncTask extends AsyncTask<String, Void, Bitmap> { @Override protected void onPreExecute() { // TODO Auto-generated method stub super.onPreExecute(); } @Override protected Bitmap doInBackground(String... params) { // TODO Auto-generated method stub Bitmap b = Util.getImageBitmap(params[0]); return b; } @Override protected void onPostExecute(Bitmap result) { // TODO Auto-generated method stub super.onPostExecute(result); if (result != null) { imagegvoew.setImageBitmap(result); } } } class VisitWebRunnable implements Runnable { @Override public void run() { // TODO Auto-generated method stub String data = Util.get(urls); resultStr = data; } } class VisitWebRunnables implements Runnable { @Override public void run() { // TODO Auto-generated method stub Map<String, String> params = new HashMap<String, String>(); params.put("q", "test"); params.put("showapi_appid", "11548"); params.put("showapi_timestamp", "20160511151954"); params.put("showapi_sign", "bb1d15ab7ce646ec87cc89d684ca4bcb"); String data = Util.post("https://route.showapi.com/32-9", params); resultStr1 = data; } } }
注意:使用时常出现出现NetworkOnMainThreadException错误,Android.os.NetworkOnMainThreadException错误提示的原因
原因:不允许在主线程中进行网络访问
解决:将网络访问的操作单独放到一个线程中
记得加网络权限
<uses-permission android:name="android.permission.INTERNET"/>
源码点击下载:
https://github.com/DickyQie/android-network-request
相关文章推荐
- android--------HttpURLConnection的get,post和图片加载
- android--------HttpURLConnection的get,post和图片加载
- Android中使用HttpURLConnection实现GET POST JSON数据与下载图片
- Android中如何使用HttpURLConnection实现GET POST JSON数据与下载图片
- Android中使用HttpURLConnection实现GET POST JSON数据与下载图片
- Android HttpURLConnection(Get,Post方式)进行网络通信 获取数据和网络图片
- Android中使用HttpURLConnection实现GET POST JSON数据与下载图片
- Android中使用HttpURLConnection实现GET POST JSON数据与下载图片
- Http学习之使用HttpURLConnection发送post和get请求 android
- Android中使用HttpURLConnection和HttpClient实现GET和POST请求访问网络
- Android之HttpURLConnection的GET和POST请求
- android的HttpURLConnection实现post和get
- Android - HttpURLConnection下载网络文件,加载网络图片
- Android_HttpURLConnection_Get和Post请求
- 【黑马Android】(05)短信/查询和添加/内容观察者使用/子线程网络图片查看器和Handler消息处理器/html查看器/使用HttpURLConnection采用Post方式请求数据/开源项目
- Android连网Get、Post和HttpURLConnection
- HttpURLConnection的get和post处理方法(含图片)
- HttpUrlConnection和HttpClient和android-async-http框架的GET和POST请求
- Android中的post和get请求(HttpURLConnection)方式
- HttpUrlConnection 下的post, get , 和图片下载(工具类)