以下是一个使用Apache HttpComponents库编写的下载程序,该程序使用Java下载https://www.zhihu.com/的视频,并使用代理主机www.duoip.cn和代理端口8000。
import org.apache.http.HttpEntity;
import org.apache.http.client.methods.CloseableHttpResponse;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClients;
import org.apache.http.util.EntityUtils;
public class VideoDownloader {
public static void main(String[] args) {
String url = "https://www.zhihu.com/";
String proxyHost = "www.duoip.cn";
int proxyPort = 8000;
// 创建HttpClient对象
CloseableHttpClient httpClient = HttpClients.createDefault();
// 创建HttpGet对象,指定URL
HttpGet httpGet = new HttpGet(url);
// 创建代理配置对象
HttpHost proxy = new HttpHost(proxyHost, proxyPort);
// 创建代理配置对象,并设置到HttpGet对象
httpGet.setProxy(proxy);
try {
// 执行HttpGet请求
CloseableHttpResponse response = httpClient.execute(httpGet);
// 获取Http响应实体
HttpEntity httpEntity = response.getEntity();
// 将响应实体内容写入文件
EntityUtils.write(response.getEntity(), System.out);
// 关闭响应对象
response.close();
// 关闭HttpClient对象
httpClient.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}
代码解释:
1. 引入Apache HttpComponents库的相关类。
2. 定义要下载的URL和代理主机和端口。
3. 创建HttpClient对象。
4. 创建HttpGet对象,指定要下载的URL。
5. 创建代理配置对象,并设置到HttpGet对象。
6. 执行HttpGet请求。
7. 获取Http响应实体。
8. 将响应实体内容写入文件。
9. 关闭响应对象和HttpClient对象。如果有异常,打印异常信息。