网络编程-URL与HttpURLConnect类

本文介绍如何使用Java的URL与HttpURLConnect类实现多线程下载网络图片。通过创建自定义类继承Thread,并在run方法中实现图片下载逻辑,设置HTTP请求参数,如超时时间和请求方法等。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

网络编程-URL与HttpURLConnect类

认真阅读下列要求,完成代码编写:

  1. 提交任务时,将本次任务中的子任务同时进行提交。

  2. 提交代码时,请将代码放入Java代码框中提交。

  3. 提交代码时要保证代码简洁及对齐,可以合理的进行缩进及换行。(影响成绩评定)

使用URL与HttpURLConnect类下载网络上的两张图片,要求启动2个线程,分别下载一张图片。

提示:

  1. 使用Thread或Runnable方法实现多线程,自定义的类中需包含2个属性,1个是图片的地址,另一个是存储位置

  2. 下载图片的操作在线程中实现

package homework2;

import java.io.BufferedInputStream;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.URL;
import java.net.URLConnection;
import java.util.logging.Logger;

import javax.net.ssl.HttpsURLConnection;
import javax.xml.ws.Response;

public class URLDemo extends Thread{
	
	private String imgUrl;//图片地址
	private String location;//图片存储位置
	
	public URLDemo(String imgUrl,String location) {
		this.imgUrl=imgUrl;
		this.location = location;
	}
	
	@Override
	public void run() {
//		图片下载
		try {
			FileOutputStream fos = new FileOutputStream(new File(location));
			URL url = new URL(imgUrl);
//			打开连接
			HttpURLConnection conn = (HttpURLConnection)url.openConnection();
//			设置网络链接超时时间
			conn.setConnectTimeout(3000);
//			设置应用程序要从网络连接读取数据
			conn.setDoInput(true);
//			设置请求方式
			conn.setRequestMethod("GET");
////			发送请求
//			conn.connect();
//			获取请求返回码
			int code = conn.getResponseCode();
			if(code == 200) {
				InputStream is = conn.getInputStream();
			;
				byte[] b = new byte[1024];
				int len =0;
				while((len = is.read(b)) > 0) {
					fos.write(b,0,len);
				}
				fos.close();
			}		
		} catch ( IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		super.run();
	}
}
package homework2;

public class Test {
	public static void main(String[] args) {
		String imgUrl1 ="https://www.baidu.com/img/PCtm_d9c8750bed0b3c7d089fa7d55720d6cf.png"; 
		String imgUrl2 = "https://dss1.bdstatic.com/70cFvXSh_Q1YnxGkpoWK1HF6hhy/it/u=664006419,3264023644&fm=26&gp=0.jpghttp://www.edu2act.cn/";
		String location1="D:\\Demo\\baidu.png";
		String location2="D:\\Demo\\baidu2.jpg";
		new URLDemo(imgUrl1,location1).start();
		new URLDemo(imgUrl2,location2).start();
	}

}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值