Android-网络编程
2015-11-18 00:10
459 查看
Android网络编程学习记录
了解HTTP协议
HTTP协议介绍分类
基于Socket基于HTTP协议
HttpUrlconnction(java.net包中提供)
HttpClient(androidSDK中集成的开源框架)
服务器端返回客户端的内容有三种方式
HTML代码的形式返回XML字符串的形式返回
JSON对象的方式返回
步骤
首先加上权限
判断网络必须加上的权限<uses-permission android:name=”android.permission.ACCESS_NETWORK_STATE”/>
如果判断是否连接wifi就必须加上的权限
<uses-permission android:name=”android.permission.ACCESS_WIFI_STATE”/>
上网权限
<uses-permission android:name=”android.permission.INTERNET”/>
判断网络
//判断手机是否连网 public static boolean getNetState(Context context) { //ConnectivityManager 主要管理和网络连接相关的操作 ConnectivityManager cm = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE); //获取当前网络信息类 NetworkInfo info = cm.getActiveNetworkInfo(); if (info == null || !info.isAvailable()) { return false; } else { switch (info.getType()) { case ConnectivityManager.TYPE_MOBILE: Log.i("myout", "当前使用移动网络"); break; case ConnectivityManager.TYPE_WIFI: Log.i("myout", "当前使用WIFI网络"); break; } return true; } }
获取网络数据
//这写的是一个获取网络json数据方法 public static String getDataFromNet(String urlPath) { try { //创建一个URL对象指定路径 URL url = new URL(urlPath); //通过url打开连接获得一个HttpURLConnection对象 HttpURLConnection conn = (HttpURLConnection) url.openConnection(); //设置连接主机超时时间,单位:毫秒 conn.setConnectTimeout(6000); //设置连接从主机读取数据超时时间,单位:毫秒 conn.setReadTimeout(6000); //设置请求的方法(POST、GET、、、),默认是你GET conn.setRequestMethod("GET"); //获取响应的状态代码 int code = conn.getResponseCode(); //判断是否连接成功,如果状态码为200代表请求成功 if (code == HttpURLConnection.HTTP_OK) { //获取数据流 InputStream input = conn.getInputStream(); //转换成字符流,然后转换成字符串 BufferedReader reader = new BufferedReader(new InputStreamReader(input)); StringBuilder sb = new StringBuilder(); String len; while((len = reader.readLine()) != null) { sb.append(len); } return changeJson(sb.toString()); } } catch (MalformedURLException e) { e.printStackTrace(); }catch (IOException e) { e.printStackTrace(); } return "no data"; }
我的感受
一定要记得权限、权限、权限、、、、POST可以向服务器提交表单数据
今天知道了网络连接响应码403,我请求连接,人家不搭理我。/(ㄒoㄒ)/~~
想说的话
博客坚持写,不管怎么样,今后打算学习了新的东西就在这里记录一下,以便今后回顾,也希望小小笔记能帮助你们如果内容有什么地方不对,请告知,希望大家能一起学习和成长(^o^)/~
来一句:人非圣贤,孰能无过。复审代码是为了发现问题。不过如有遗漏,也不可把责任归咎于一个人身上去针对他。
相关文章推荐
- springmvc在普通类中获取HttpServletRequest对象
- HTTP状态吗
- iOS 9不能使用http
- UIImageview 显示网络图片及问题
- iOS - 网络数据加载等待页面的简单实现
- HTTP协议常用字段
- HTTP 方法GET 和 POST区别
- Multipart/form-data POST文件上传详解 理论 简单的HTTP POST 大家通过HTTP向服务器发送POST请求提交数据,都是通过form表单提交的,代码如下: <form me
- Android开发手记(29) 基于Http的LaTeX数学公式转换器
- WIN2003下休眠后无线连接无法连接
- Android Http通信(HttpURLConnection)
- HTTP协议是无状态协议
- Android 网络编程 初级入门(一)
- 负载均衡与HTTP加速
- 比ngx_http_substitutions_filter_module 更强大的替换模块sregex的replace-filter-nginx-module
- 【计算机网络】子网掩码什么用?什么是网段?什么叫做在“同一网段”?
- SNS背后的科学(1)从六度分隔到无尺度网络
- tinyproxy搭建正向http/https代理
- CFURL或CFURLConnection错误
- (网络)计算机网络基础知识点