HttpClient 资源下载

本文介绍了一个使用Java实现的HTTP客户端工具类,该工具类包括发送GET请求获取字符串内容及下载文件的功能。通过示例代码展示了如何利用Apache HttpClient库进行网络请求,并提供了错误处理和资源释放的方法。

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

 

 

import java.io.BufferedReader;

import java.io.FileOutputStream;

import java.io.IOException;

import java.io.InputStream;

import java.io.InputStreamReader;

import org.apache.http.HttpEntity;

import org.apache.http.HttpResponse;

import org.apache.http.HttpStatus;

import org.apache.http.client.ClientProtocolException;

import org.apache.http.client.HttpClient;

import org.apache.http.client.methods.HttpGet;

import org.apache.http.impl.client.DefaultHttpClient;

import org.apache.commons.io.IOUtils;

public class HttpClientUtil {

 

public static HttpClient getHttpClient(){

// 创建客户端

HttpClient client = new DefaultHttpClient();

return client;

}

/**

* 通过url加载字符串

* @author:qiuchen

* @createTime:2012-7-9

* @param url

* @return

*/

public static String get(String url) {

String messageStr = null;

// 创建HttpClient实例

HttpClient httpClient = getHttpClient();

// Http Get 请求

HttpGet get = new HttpGet(url);

// 获得服务器响应的所有信息

HttpResponse response = null;

try {

response = httpClient.execute(get);

int state = response.getStatusLine().getStatusCode();

if(state == HttpStatus.SC_OK){ //状态码=200

// 获得服务器响应的信息(除head部分,源代码中是看不到的)

HttpEntity entity = response.getEntity();

//获取输入流

InputStream input = entity.getContent();

// 缓冲读取器

BufferedReader reader = new BufferedReader(new InputStreamReader(input,"utf-8"));

StringBuffer sb = new StringBuffer();

String line = null;

while((line=reader.readLine()) != null) {

sb.append(line);

}

reader.close();

input.close();

messageStr = sb.toString();

}else{

System.out.println("load json music error");

}

} catch (ClientProtocolException e) {

e.printStackTrace();

} catch (IOException e) {

e.printStackTrace();

} finally{

if(httpClient != null){

httpClient.getConnectionManager().shutdown();

}

}

return messageStr;

}

/**

* 通过url下载数据到本地文件

* @author:qiuchen

* @createTime:2012-7-9

* @param url

* @return

*/

public static boolean download(String url){

//创建客户端

HttpClient httpClient = getHttpClient();

 

//文件下载路径

String savePath = "f:/data.txt";

 

// Http Get 请求

HttpGet get = new HttpGet(url);

 

// 获得服务器响应的所有信息

HttpResponse response = null;

try {

response = httpClient.execute(get);

//状态码

int state = response.getStatusLine().getStatusCode();

System.out.println(state);

if(state == HttpStatus.SC_OK){ //状态码=200

// 获得服务器响应的信息(除head部分,源代码中是看不到的)

HttpEntity entity = response.getEntity();

System.out.println("fileLength:"+entity.getContentLength());

System.out.println(entity);

//获取输入流

InputStream input = entity.getContent();

//定义输出文件(文件格式要和资源匹配)

FileOutputStream bout = new FileOutputStream(savePath);

//COPY

IOUtils.copy(input, bout);

 

input.close(); // 关闭输入流

bout.close(); //关闭输出流

 

System.out.println("download success");

}else{

System.out.println("read error");

}

} catch (ClientProtocolException e) {

e.printStackTrace();

} catch (IOException e) {

e.printStackTrace();

} finally{

if(httpClient != null){

httpClient.getConnectionManager().shutdown();

}

}

return true;

}

}

 

内容概要:本文详细探讨了基于MATLAB/SIMULINK的多载波无线通信系统仿真及性能分析,重点研究了以OFDM为代表的多载波技术。文章首先介绍了OFDM的基本原理和系统组成,随后通过仿真平台分析了不同调制方式的抗干扰性能、信道估计算法对系统性能的影响以及同步技术的实现与分析。文中提供了详细的MATLAB代码实现,涵盖OFDM系统的基本仿真、信道估计算法比较、同步算法实现和不同调制方式的性能比较。此外,还讨论了信道特征、OFDM关键技术、信道估计、同步技术和系统级仿真架构,并提出了未来的改进方向,如深度学习增强、混合波形设计和硬件加速方案。; 适合人群:具备无线通信基础知识,尤其是对OFDM技术有一定了解的研究人员和技术人员;从事无线通信系统设计与开发的工程师;高校通信工程专业的高年级本科生和研究生。; 使用场景及目标:①理解OFDM系统的工作原理及其在多径信道环境下的性能表现;②掌握MATLAB/SIMULINK在无线通信系统仿真中的应用;③评估不同调制方式、信道估计算法和同步算法的优劣;④为实际OFDM系统的设计和优化提供理论依据和技术支持。; 其他说明:本文不仅提供了详细的理论分析,还附带了大量的MATLAB代码示例,便于读者动手实践。建议读者在学习过程中结合代码进行调试和实验,以加深对OFDM技术的理解。此外,文中还涉及了一些最新的研究方向和技术趋势,如AI增强和毫米波通信,为读者提供了更广阔的视野。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值