您的位置:首页 > 理论基础 > 计算机网络

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^)/~

来一句:人非圣贤,孰能无过。复审代码是为了发现问题。不过如有遗漏,也不可把责任归咎于一个人身上去针对他。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: