Android通过HttpURLConnection链接到网络,并获取网络数据
1.判断网络是否连接
private void networkIsconnected(String str){
ConnectivityManager connMgr = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo networkInfo = connMgr.getActiveNetworkInfo();
if (networkInfo != null && networkInfo.isConnected()){
new DownloadUrl(str).execute();
}else {
display.setText("网络没有链接上!");
}
}
2.创建一个任务类,实现网络下载后台执行
//创建一个任务类
private class DownloadUrl extends AsyncTask<Integer,Integer,String>{
private String str ; public DownloadUrl(String url){
this.str = url;
} @Override
protected String doInBackground(Integer... urls) {
try {
return downloadurl(str);
} catch (IOException e) {
return "网络地址错误!";
}
} @Override
protected void onPostExecute(String s) {
super.onPostExecute(s);
display.setText(s);
}
}
3.创建一个下载数据的函数
//根据url下载数据内容
private String downloadurl(String url) throws IOException { InputStream is = null;
int len = 500; URL myurl = new URL(url);
HttpURLConnection conn = (HttpURLConnection) myurl.openConnection();
conn.setConnectTimeout(10000);
conn.setReadTimeout(15000);
conn.setDoInput(true);
conn.connect();
int response = conn.getResponseCode();
Log.d("DEBUG_TAG", "The response is: " + response);
is = conn.getInputStream();
String contengString = readIt(is,len);
return contengString;
}
4.读取输入流传过来的inputstream
public String readIt(InputStream stream, int len) throws IOException{
Reader reader = null;
reader = new InputStreamReader(stream, "UTF-8");
char[] buffer = new char[len];
reader.read(buffer);
return new String(buffer);
}
5.最后在oncreate中直接运行即可
networkIsconnected(urltext.getText().toString());
Android通过HttpURLConnection链接到网络,并获取网络数据的更多相关文章
- java 通过网络 ntp 获取网络时间
需要 commons-net-3.4.jar 库. import org.apache.commons.net.ntp.NTPUDPClient; import org.apache.commons. ...
- android之HttpURLConnection(转)
android之HttpURLConnection 1.HttpURLConnection连接URL1)创建一个URL对象 URL url = new URL(http://www.baidu.com ...
- Android之HttpURLConnection
1.HttpURLConnection连接URL1)创建一个URL对象 URL url = new URL(); 2)利用HttpURLConnection对象从网络中获取网页数据 HttpURLCo ...
- 05.Python网络爬虫之三种数据解析方式
引入 回顾requests实现数据爬取的流程 指定url 基于requests模块发起请求 获取响应对象中的数据 进行持久化存储 其实,在上述流程中还需要较为重要的一步,就是在持久化存储之前需要进行指 ...
- 05,Python网络爬虫之三种数据解析方式
回顾requests实现数据爬取的流程 指定url 基于requests模块发起请求 获取响应对象中的数据 进行持久化存储 其实,在上述流程中还需要较为重要的一步,就是在持久化存储之前需要进行指定数据 ...
- 《Python网络爬虫之三种数据解析方式》
引入 回顾requests实现数据爬取的流程 指定url 基于requests模块发起请求 获取响应对象中的数据 进行持久化存储 其实,在上述流程中还需要较为重要的一步,就是在持久化存储之前需要进行指 ...
- Python网络爬虫之三种数据解析方式 (xpath, 正则, bs4)
引入 回顾requests实现数据爬取的流程 指定url 基于requests模块发起请求 获取响应对象中的数据 进行持久化存储 其实,在上述流程中还需要较为重要的一步,就是在持久化存储之前需要进行指 ...
- Android(java)学习笔记204:自定义SmartImageView(继承自ImageView,扩展功能为自动获取网络路径图片)
1.有时候Android系统配置的UI控件,不能满足我们的需求,Android开发做到了一定程度,多少都会用到自定义控件,一方面是更加灵活,另一方面在大数据量的情况下自定义控件的效率比写布局文件更高. ...
- Android中获取网络数据时的分页加载
//此实在Fragment中实现的,黄色部分为自动加载,红色部分是需要注意的和手动加载, 蓝色部分是睡眠时间,自我感觉不用写 ,还有就是手动加载时,不知道为什么进去后显示的就是最后一行,求大神 ...
随机推荐
- POJ - 3652 Persistent Bits
“模拟”类型,题型容易,使用bitset库对二进制逐位操作,初始化.十进制转二进制(unsigned int).位操作. POJ - 3652 Persistent Bits Time Limit: ...
- InnoDB Spin rounds per wait在>32位机器上可能为负
今天发现一个系统innodb的spin rounds per wait为负,感觉很奇怪,原来是个bug: For example (output from PS but we have no patc ...
- Tomcat常见的内存溢出,以及解决方法
一.常见的三种内存溢出错误: 1.java.lang.OutOfMemoryError:java heap space ====JVM Heap(堆)溢出 JVM再启动的时候回自动设置JVM H ...
- mfc显示静态图片最简单的方法
一致都是研究如何调用opencv显示动态图片,但是很多时候在显示图标的时候,都是需要显示静态图片,现在将最简单的方法总结下: 1.添加picture控件 2.添加资源,要求为bmp 3.修改属性 结果 ...
- 第二章:Posix IPC
2.1:概述 以下三种类型的IPC合称为“Posix IPC”: Posix消息队列 Posix信号量 Posix共享内存区 Posix IPC在访问它们的函数和描述它们的信息上有一些类似点.本章讲述 ...
- background-clip 制作文字火焰效果
1.Background-clip的语法 background-clip: border-box || padding-box || context-box || no-clip || text 2. ...
- GMF:如何在不打开Editor的情况下生成图片
问题 GMF应用中,有时我们希望在不打开*DiagramEditor的情况下,从文件就能生成它的图片 解决方案 首先,从文件中构造DiagramImpl实例: TransactionalEditi ...
- 灵活QinQ配置
华为交换机灵活QinQ配置列子 配置vlan2 为内层vlan vlan100 为外层vlan #用户端 Gi // qinq vlan-translation enable port hybrid ...
- ArcGIS Javascript地图上添加json数据格式的点
/** * 显示地图点. * json的格式[{"name":"name1","x":"x1","y" ...
- src url href uri的区别和联系