• handler和网络访问(2018年01月03日)


    2018.1.3

    1、回顾线程、handler

    【案例】

    项目结构

    activity_main.xml

    MainActivity.java

     

    测试:

    2、如何进行网络访问?

    android开发框架访问网络主要依赖:

    1java.net包针对网络访问

    2java.io包针对数据访问(输入和输出)

    3java.nio包用于数据访问(输入和输出)

    4org.apache包中包含很多有关http访问的方法

    5android.net包对java.net包进一步的封装

    6android.telephony.gsm包用于发送和管理sms消息。

    具体的来说:在android studio下推荐的网络访问是

    1HttpURLConnection对象

    2Volley框架

    3、使用HttpURLConnection对象来访问网络

    api

    1int getResponseCode()获取服务器响应的状态码

    2String getResponseMessage()获取服务器响应的消息

    3String getRequestMethod() 获取请求的方式

    4void setRequestMethod()设置请求的方式

    【说明】

    1)服务器如何访问

    2)请求的方式,对于客户端来说,请求有两种方式getpost

    get直接向服务器发送字符串,类似于在浏览器的地址栏中输入字符发送给服务器;

    post对请求信息进行编码,编码后发送给服务器。

    不同的请求方式,需要服务器对应处理。也就是说get方式发送的请求,服务器需要响应get方式;post方式请求,需要服务器响应post方式请求。

    在网页中:

    <form action=”*” method=”get|post”></form>

    通常直接访问一个图片信息,就是一个get方式的请求。(因为只发送了一个链接,而没有发送额外的请求信息)

    【案例】使用HttpURLConnection获取网络中的图片

    1)界面上有一个EditText,用于保存网络url;有一个button用于执行网络请求;有一个imageview用于显示网络下载下来的图片。

    2)在MainActivity中,初始化这些UI控件,且设置Button的事件

    3)由于需要访问网络,android要求网络访问必须放入子线程中。所以需要定义一个子线程。需要在run方法中实现网络访问。

    4)使用HttpURLConnection来访问网络:

    4.1 创建一个URL对象,用于表示访问什么地址?

    4.2使用URL对象来创建一个HttpURLConnection对象

    4.3设置请求的相关配置

    4.4执行请求通过HttpURLConnection对象的getResponseCode()执行请求

    4.5如果服务器返回的是200,表示是一个正确的响应。

    4.6获取图片

    4.7图片有了,需要发送给UI线程,需要定义一个Handler对象

    5)定义一个Handler对象

    4.8使用handlersendMessage方法发送图片

    6)在handler对象的handleMessage方法中处理收到的消息

    6.1还原图片

    6.2将图片显示到UI

    7)由于访问网络需要设定权限,

    7.1androidManifest.xml文件中设置网络访问权限

    7.2高版本的android系统需要设置动态权限

    项目结构:

    activity_main.xml

    MainActivity.java

     

    androidManifest.xml

    效果:

  • 相关阅读:
    总结与学习DIV+CSS网页布局技巧
    sns.pairplot()
    使用python处理Excel,Excel中一行数据生产一个Excel文件
    sklearn.model_selection
    sklearn.datasets
    sklearn.metrics 模型评估指标
    LightGBM
    对比Node.js和Python 帮你确定理想编程解决方案!
    小白需要了解的Ajax和websocket的区别以及使用场景!
    为什么越来越多的人想学编程?
  • 原文地址:https://www.cnblogs.com/sanshengshitouhua/p/14577021.html
Copyright © 2020-2023  润新知