Java实现http通信2-通过http协议下载网页和图片

1.任务目标

1.把实现http通信的程序(见get/post方式实现http通信)改造为一个可以通过HTTP请求来下载图片或其他二进制文件的程序,下载结果要按下载到的文件类型进行存盘。

2.把本程序改造为一个输入一个起始URL及其参数之后就可以下载此URL及其参数所指定的WEB页面,以及此WEB页面中HTML语言超级链接所指向的所有WEB页面(只下载一级即可)。

2.完成思路与知识点总结

2.1 任务1

思路分析:
该任务要求和http基础通信实现相差不大,只是从获取响应信息改为将获取到的信息下载到本地进行存盘。在前面任务中我已经读取到了服务器网页的页面代码,因此这里我尝试通过http请求来下载网页上的某一个图片。
该任务同样可分为两个部分:

  • 一是通过java http通信来建立和某一服务器的连接;
  • 另一个是通过使用之前学习的io流来完成数据的读写。

其中,java http通信的建立方法和上面的一样,都是先指定一个url,这里的url是复制图片的链接作为url;参数设置包括请求方式、响应时间、是否允许读取文件和输出文件等;建立实际连接,通过获取服务器返回的响应码来判断是否连接成功。连接成功后,开始下载图片。回顾之前学习的java文件读写,这里的下载过程的关键就是一边读一边写:将图片存放在一个byte数组中,通过调用read方法,通过判断其值是否为-1来确定图片是否读取完毕,如果没有读取完,则需要使用write方法写入指定的路径中,直至读取完毕后刷新并关闭读写流。

2.2 任务2

思路分析:
该任务内容和任务1类似,建立java连接和下载web页面的方法和上面一样,只需将url指定为想要下载的网页的路径,并将本地写入路径的格式从png更改为html即可。

3.代码实现

1、通过HTTP请求来下载图片并将下载结果进行存盘:

import java.net.*;
import java.io.*;
/*
把本程序改造为一个可以通过HTTP请求来下载图片或其他二进制文件的程序,下载结果要按下载到的文件类型进行存盘。
*/
public class http4 {
   
	public static void main(String[] args) {
   
		try{
   
			//url为网页上图片的地址
			URL url = new URL("https://www.baidu.com/img/PCtm_d9c8750bed0b3c7d089fa7d55720d6cf.png");//指定url,百度logo
			//URL url = new URL("https://aecpm.alicdn.com/simba/img/TB1W4nPJFXXXXbSXpXXSutbFXXX.jpg");//指定url,天猫商品图片
			HttpURLConnection con = (HttpURLConnection)url.openConnection();//创建httpURLConnection链接对象
			con.setRequestMethod("GET");//指定通信方式为get
			con.setConnectTimeout</
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值