android--------HttpURLConnection的get,post和图片加载
URLConnection是个抽象类,它有两个直接子类分别是HttpURLConnection和JarURLConnection。另外一个重要的类是URL,通常URL可以通过传给构造器一个String类型的参数来生成一个指向特定地址的URL实例。
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】安卓中常用的图片加载方法
一.通过相机选图片: 布局文件: <?xml version="1.0" encoding="utf-8"?> <LinearLayout x ...
- android 自定义控件之NetWorkImageView 处理listview等控件中的图片加载乱序问题
0.调用: BaseAdapter中设置方法 holder.iv.loadImage(url); adapter_xxx.xml 中 控件需要用 xxx.NetWorkImageView 1 NetW ...
- Android图片加载与缓存开源框架:Android Glide
<Android图片加载与缓存开源框架:Android Glide> Android Glide是一个开源的图片加载和缓存处理的第三方框架.和Android的Picasso库类似,个人感觉 ...
- Android之Fresco(facebook的强大Android图片加载的框架)
Fresco是Facebook最新推出的一款用于Android应用中展示图片的强大图片库,可以从网络.本地存储和本地资源中加载图片.其中的Drawees可以显示占位符,直到图片加载完成.而当图片从屏幕 ...
- Android常用的图片加载库
Android常用的图片加载库 前言:图片加载涉及到图片的缓存.图片的处理.图片的显示等.四种常用的图片加载框架,分别是Fresco.ImageLoader. Picasso. Glide. Uni ...
- Android图片加载神器之Fresco,基于各种使用场景的讲解
Fresco是Facebook开源Android平台上一个强大的图片加载库,也是迄今为止Android平台上最强大的图片加载库. 优点:相对于其他开源的第三方图片加载库,Fresco拥有更好的内存管理 ...
- Android图片加载神器之Fresco, 基于各种使用场景的讲解
Fresco是Facebook开源Android平台上一个强大的图片加载库,也是迄今为止Android平台上最强大的图片加载库. 优点:相对于其他开源的第三方图片加载库,Fresco拥有更好的内存管理 ...
- Volley框架之网络请求和图片加载
Volley是 Google 推出的 Android 异步网络请求框架和图片加载框架. Volley的特性 (1).封装了的异步的请求API.Volley 中大多是基于接口的设计,可配置性强.(2). ...
- android--------volley之网络请求和图片加载
Volley是 Google 推出的 Android 异步网络请求框架和图片加载框架. Volley的特性 封装了的异步的请求API.Volley 中大多是基于接口的设计,可配置性强. 一个优雅和稳健 ...
- 图片加载之Picasso使用
简介 Picasso是Square公司开源的一个Android图形缓存库,可以实现图片下载和缓存功能. 主要有以下一些特性: 在Adapter中回收和取消已经不在视野范围图片资源的加载,防止可能出现的 ...
随机推荐
- Android :64位支持的说明
https://blog.csdn.net/u012400885/article/details/52923765 https://blog.csdn.net/ouyang_peng/article/ ...
- Redis 如何保持和MySQL数据一致【二】
需求起因 在高并发的业务场景下,数据库大多数情况都是用户并发访问最薄弱的环节.所以,就需要使用redis做一个缓冲操作,让请求先访问到redis,而不是直接访问MySQL等数据库. 这个业务场景,主要 ...
- P2455 [SDOI2006]线性方程组(real gauss)
P2455 [SDOI2006]线性方程组 (upd 2018.11.08: 这才是真正的高斯消元模板) 找到所消未知数(设为x)系数最大的式子,把它提上来 把这个式子的 x 系数约成1 把这个式子用 ...
- Linux(RedHat) 开机时修改root密码
全程上图 开机的时候看到以下的界面, 按e进入编辑界面 然后就看到这个 再按一下e, 选择第二项 选中第二项后按e进入编辑界面, 输入single(记得有空格),然后回车, single就是启动单用户 ...
- redhat6.4 elasticsearch1.7.3安装配置
利用elasticsearch管理集群索引, 今天刚好需要重新调整elasticsearch的最大内存, 所以自己安装了练手 附件: elasticsearch 附件:elasticsearch-he ...
- 20145337《网络对抗技术》逆向及BOF基础
20145337<网络对抗技术>逆向及BOF基础 实践目标 操作可执行文件pwn1,通过学习两种方法,使main函数直接执行getshall,越过foo函数. 实践内容 手工修改可执行文件 ...
- BZOJ 1503 郁闷的出纳员(splay)
题目链接:http://www.lydsy.com/JudgeOnline/problem.php?id=1503 题意:给出一个数列(初始为空),给出一个最小值Min,当数列中的数字小于Min时自动 ...
- Go第四篇之流程控制
流程控制是每种编程语言控制逻辑走向和执行次序的重要部分,流程控制可以说是一门语言的“经脉”. Go 语言的常用流程控制有 if 和 for,而 switch 和 goto 主要是为了简化代码.降低重复 ...
- Centos7.2 修改网卡名称
查看ip [root@localhost network-scripts]# ip addr : lo: <LOOPBACK,UP,LOWER_UP> mtu qdisc noqueue ...
- C++作业:Circle_area
Github链接: Circle_area 代码: main.cpp #include "circle_area.h" #include <iostream> #inc ...