Android-网络编程

Android网络编程学习记录

了解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^)/~
  • 来一句:人非圣贤,孰能无过。复审代码是为了发现问题。不过如有遗漏,也不可把责任归咎于一个人身上去针对他。
阅读更多
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u014314614/article/details/49896141
文章标签: android 网络编程
个人分类: Android
上一篇HTTP协议了解
下一篇Android-JSON解析
想对作者说点什么? 我来说一句

Android-课件

2018年07月11日 1.61MB 下载

Android-编程权威指南

2018年01月23日 14.79MB 下载

android-关于广播机制的使用

2013年12月24日 5.08MB 下载

android-笔试题-答案(面试使用)

2012年02月27日 60KB 下载

android-网络编程 Demo

2018年04月12日 19.21MB 下载

没有更多推荐了,返回首页

关闭
关闭