【幻化万千戏红尘】qianfengDay27-HttpURLConnection,OkHttpClient,,多线程下载且断点续传基础学习:

课程回顾:

Servlet:java语言开发的运行在服务器上的
开发步骤:
1、创建Servlet类
2、重写doGet或doPost方法
3、运行在服务器

生命周期:
1、初始化
2、服务
3、销毁

URL:统一资源定位符,网址
openConnection

今日内容:
Http协议:超文本传输协议
常用方式:
1、HttpURLConnection
2、okHttp

HttpURLConnection的使用步骤:
1、创建URL对象---URL url=new URL("网址");
2、获取连接对象--HttpURLConnection huc=(HttpURLConnection)url.openConnection
3、设置信息---huc.setXXX
4、连接------huc.connect
5、验证状态响应码----huc.getResponseCode
6、获取服务器响应内容----huc.getInputStream
7、关闭-----disconnect

状态响应码:服务器的信息的响应状态码
1开头:消息
2开头:成功 200:OK,206:部分响应成功
3开头:重定向
4开头:请求错误 404:找不到页面
5开头:服务器错误 500:服务器程序崩溃

URL类:统一资源定位符

练习:
http://10.16.153.63:8080/Day26/PageStudentServlet
请使用HttpURLConnection进行数据的获取
需要参数:
pageIndex:当前页数
count:数量

1)、将数据显示
2)、将数据保存当前项目下的文件中

HTTP协议常用:
1、获取字符串
2、获取资源(图片、音频、压缩包等)
3、POST传递参数

okHttp:目前比较火的网络框架
使用步骤:
1、创建客户端对象---OkHttpClient client=new OkHttpClient()
2、创建请求对象-----Request request=new Request.Builder().url("网址").build()
3、创建响应对象-----Response response=client.newCall(request).execute();
4、验证是否成功----response.isSuccessful
5、获取服务器响应信息----response.body.XXX
常用:
bytes:获取内容对应的字节数组
string:获取内容对应的字符串
byteStream:获取内容对应的字节数组
charStream:获取内容对应的字符数组
contentLength:内容的字节个数

练习:
写一个接口,要求参数为学号(8位)
get请求,返回随机生成的手机号 13XXXX-18XXXX 11位
post请求,返回3-10位的英文字母,作为英文名

要求客户端,发起GET和POST请求
要求使用HttpURLConnection(GET)和OkHttp(POST)实现

http://10.16.153.63:8080/Day27_Server/WeatherCityNo.txt
多线程下载且断点续传
整体思路:
分配
固定线程个数
还是固定块的大小

时间: 2024-12-22 20:47:36

【幻化万千戏红尘】qianfengDay27-HttpURLConnection,OkHttpClient,,多线程下载且断点续传基础学习:的相关文章

【幻化万千戏红尘】qianfengDay26-Servlet、http协议、URL基础学习:

课程回顾: 线程网络编程SQLiteHTML5 今日内容:ServletHTTP协议XML解析JSON解析正则+注解 网络程序的分类:1.B/S2.C/S 表单的提交方式:1.get:参数信息跟在URL后面传输特点:1.不安全,信息比较敏感2.大小有限制3.中文乱码,URL采用编码格式为:ISO8859-14.效率高2.post:参数信息通过流的形式进行传输特点:1.安全2.大小无限制3.效率低 Servlet:java语言编写的运行在服务器端的程序服务器执行 使用Servlet的步骤:1.创建

【幻化万千戏红尘】qianfengDay30-正则表达式、注解注释基础学习:

课程回顾:JSON:符合一定规则的字符串 解析方法:JSONGsonFASTJSON 今日内容:正则表达式:规则表达式语法规则:. 通配符,可以表示任意字符* 任意个字符,[0,n]+ 至少1个? 最多1个{n} 恰好n个{n,} 最少n个  {n,m} 最少n个最多m个[0-9] 任意一个数字[A-Za-z] 任意一个字母[a-c[N-Q]] a-c或N-Q 并集[A-D&&[C-F]] C或D 交集[^abc] 除了abc以外的字符\w 等价---[A-Za-z-0-9_]\W 非--

【幻化万千戏红尘】qianfeng-JAVA课程结束总结

JAVA知识点:面向对象:面向对象是一种思想编程的指导 封装:面向对象2大核心:1.类:描述信息,抽象格式:[public/abstract/final] class 类名 { 属性 构造方法 方法} 2.对象:具体的实例格式:类名 对象[=new 类名([实际参数列表])]; this的用法1.代指本类对象2.调用构造方法 方法的参数传递:1.基本类型:传输的是数据的本身2.引用类型:传输的是地址 static:静态1.修饰属性2.修饰方法3.修饰代码块4.修饰内部类 包:1.package:

【幻化万千戏红尘】第一周小项目

1.设计猜拳游戏:游戏说明: 类型:剪刀1.石头2.布3其中:剪刀----布----结果---赢石头----剪刀--结果---赢布------石头--结果---赢相同就是平局其他就是输 本系统采用人机对战电脑每局的结果就是通过随机数来完成玩家的结果是通过键盘输入对象的编号通过一定的方法来验证输赢的结果循环进行 退出的条件:1.自愿退出2.输的达到10次的时候 A:退出 B:重新开始 扩展:要求支持金额充值玩家可以指定每次的赌注 注意:随机数,可以使用Math.random():返回[0.0,1.

【幻化万千戏红尘】qianfeng-Android-Day07-AsyncTask基础学习:

异步任务AsyncTask及JSON解析 一.AsyncTask: (一).相关知识回顾: 1.开发Android应用时必须遵守单线程模型的原则: Android UI操作并不是线程安全的,并且这些操作必须在UI线程中执行. 2.单线程模型中始终要记住两条法则: 1). 不要阻塞UI线程 : 2). 确保只在UI线程中访问Android UI控件. 当一个程序第一次启动时,Android会同时启动一个对应的主线程(Main Thread), 主线程主要负责处理与UI相关的事件,如:用户的按键事件

【幻化万千戏红尘】qianfeng-Android-Day01-安卓历史及环境的搭建基础学习:

1.数据类型:   集合 2.io 3.多线程 1.方法有没有可能被多个线程调用 4.网络: 1.http协议 2.即时通讯协议 mqtt 3.webservice 5.数据解析 xml webservice json 字符集 unicode  utf-8 6.操作系统的进程和线程的关系 java里线程的入口函数是run函数线程是并行运行的 6.java面向对象=java代码复用 7.非计算机专业的看这几本书 计算机原理 2.linux操作系统原理 3.编译原理  4.软件工程 星月神话 lin

【幻化万千戏红尘】qianfengDay28-XML解析之SAX和PULL解析基础学习:

课程回顾:HTTP协议:超文本传输协议目前互联网中使用最为广泛的通信协议 URL:统一资源定位符常用的方式:1.HttpURLConnection使用步骤: 1.创建URL对象 2.创建连接对象 3.设置请求属性 4.连接 5.验证状态响应码 6.获取服务器响应信息 7.释放 2.okHttp使用步骤: 1.创建客户端对象 2.创建请求内容对象(POST) 3.创建请求对象 4.创建响应对象 5.验证是否成功 6.获取响应内容 今日内容:XML:EXtensible Markup Languag

【幻化万千戏红尘】qianfengDay19-java基础学习:转换流、对象流、打印流、三大标准(重定向)

课程回顾: 流:数据通信的管道常用的流类:1.文件流:File:数据在文件中 1.FileInputStream 2.FileOutputStream 3.FileReader 4.FileWriter2.内存流:ByteArray:数据在内存中(数组) 1.ByteArrayInputStream 2.ByteArrayOutputStream3.缓冲流:Buffered:提高读写效率 1.BufferedInputStream 2.BufferedOutputStream 3.Buffere

【幻化万千戏红尘】qianfengDay10-java基础学习:成员内部类、静态内部类、局部和匿名内部类,设计模式之简单工厂模式

课程回顾: 接口:1.属性:public\static\final2.方法:public\abstract 多态:1.静态化(编译时)多态重载2.动态化(运行时)多态重写对象转型 1.向上转型 2.向下转型 今日内容:内部类:定义在类的内部的类1.成员内部类格式:[修饰符] class 类名 { }内部不能有静态的属性和方法,可以访问外部类的属性,也可以调用外部类的方法 在静态方法中的使用格式:外部类 外对象=new 外部类();成员内部类 对象名=外对象.new 成员内部类(); 2.静态内部