HttpURLConnection响应head内容的编码方式,如何正确识别,100分在线等
地址如下:
http://zhangmenshiting.baidu.com/data2/music/91731224/91731224.mp3?xcode=35364211a9bc8d289ad59150fa1ad1eb5dc4eabdf6e0aebb
返回的 response head中可以读取到文件名字
如下:
Content-Disposition:attachment; filename="²»ÖµµÃ.mp3"
现在我的需求是,正确识别这个filename的编码方式
这是个汉字名字,我用 new String(str.getBytes("iso-8859-1"),"gbk");
能正确的到名字,但是我希望能不是由我代码写死的来转成gbk,而是有代码或者其他方式动态识别出来
注:用浏览器访问这个地址,是可以获得正确的文件名的,指定浏览器编码方式并不会导致乱码,希望有经验的或者做过浏览器的指点指点,浏览器是如何做到的
下面是完整测试代码,拷贝即可运行:
import java.io.UnsupportedEncodingException;
import java.net.HttpURLConnection;
import java.net.URL;
import java.util.LinkedHashMap;
import java.util.Locale;
import java.util.Map;
public class T1 {
public static void main(String[] args) throws UnsupportedEncodingException, Throwable {
String downloadUrl = "http://zhangmenshiting.baidu.com/data2/music/91731224/91731224.mp3?xcode=35364211a9bc8d289ad59150fa1ad1eb5dc4eabdf6e0aebb";
URL url = new URL(downloadUrl);
// 打开HttpURLConnection
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
// 设置 HttpURLConnection的断开时间
conn.setConnectTimeout(5000);
// 设置 HttpURLConnection的请求方式
conn.setRequestMethod("GET");
// 设置 HttpURLConnection的接收的文件类型
conn.setRequestProperty(
"Accept",
"image/gif, image/jpeg, image/pjpeg, image/pjpeg, "
+ "application/x-shockwave-flash, application/xaml+xml, "
+ "application/vnd.ms-xpsdocument, application/x-ms-xbap, application/x-ms-application, "
+ "application/vnd.ms-excel, application/vnd.ms-powerpoint, application/msword, */*");
// 设置 HttpURLConnection的接收语音
conn.setRequestProperty("Accept-Language", Locale.getDefault().toString());
// 指定请求uri的源资源地址
conn.setRequestProperty("Referer", downloadUrl);
// 设置 HttpURLConnection的字符编码
conn.setRequestProperty("Accept-Charset", "UTF-8");
// 检查浏览页面的访问者在用什么操作系统(包括版本号)浏览器(包括版本号)和用户个人偏好
// conn.setRequestProperty(
// "User-Agent",
// "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.2;"
// + " Trident/4.0; .NET CLR 1.1.4322; .NET CLR 2.0.50727; "
// + ".NET CLR 3.0.04506.30; .NET CLR 3.0.4506.2152;"
// + " .NET CLR 3.5.30729)");
conn.setRequestProperty("User-Agent", "Mozilla/5.0 (Windows NT 5.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/30.0.1599.101 Safari/537.36");
conn.setRequestProperty("Connection", "Keep-Alive");
conn.connect();
printResponseHeader(conn);
}
private static void printResponseHeader(HttpURLConnection http) throws UnsupportedEncodingException {
Map<String, String> header = getHttpResponseHeader(http);
for (Map.Entry<String, String> entry : header.entrySet()) {
String key = entry.getKey() != null ? entry.getKey() + ":" : "";
System.out.println(key + entry.getValue());
}
}
private static Map<String, String> getHttpResponseHeader(
HttpURLConnection http) throws UnsupportedEncodingException {
Map<String, String> header = new LinkedHashMap<String, String>();
for (int i = 0;; i++) {
String mine = http.getHeaderField(i);
if (mine == null)
break;
header.put(http.getHeaderFieldKey(i), mine);
}
return header;
}
}
下面是我的运行结果:
HTTP/1.1 200 OK
Server:JSP2/1.0.16
Date:Mon, 04 Nov 2013 03:06:26 GMT
Content-Type:audio/mpeg
Connection:close
Content-Length:2518244
Accept-Ranges:bytes
Last-Modified:Wed, 23 Oct 2013 02:56:23 GMT
Expires:Fri, 22 Nov 2013 12:20:18 GMT
x-bs-version:9AB3778C345E22493B1B8D3D1E7D92C1
ETag:f05c8c3e7e7328b5ec3913051c256170
x-bs-request-id:MTAuNDYuMjI4LjQ0OjgwODA6Mjk3MDIxMTc1NToyMy9PY3QvMjAxMyAyMDoyMDoxOCA=
Content-Disposition:attachment; filename="²»ÖµµÃ.mp3"
x-bs-meta-crc32:657750654
Content-MD5:f05c8c3e7e7328b5ec3913051c256170
x-bs-client-ip:NTguMjE1LjEyMy45Mg==
x-bs-uncopyable:enable
Cache-Control:max-age=2592000
相关推荐
高校及科研院所如何利用外部数据完善技术转移转化机制.docx
科易网基于40亿+科创知识图谱数据库,深度探索AI技术在技术转移、成果转化、技术经纪、知识产权、产业创新、科技招商等垂直领域的多样化应用场景,研究科技创新领域的AI+数智化解决方案,推动科技创新与产业创新智能化发展。
完全复现虚拟同步发电机VSG自适应惯量阻尼控制仿真、根轨迹、调节系数对比(Simulink仿真、Matlab代码实现)
内容概要:本文档围绕“【完全复现】虚拟同步发电机VSG自适应惯量阻尼控制仿真、根轨迹、调节系数对比”这一主题,利用Simulink和Matlab平台,系统性地实现了虚拟同步发电机(VSG)的自适应惯量与阻尼控制策略的建模与仿真。内容涵盖VSG的核心控制原理、系统动态响应特性分析、根轨迹绘制以及在不同调节系数下的性能对比研究,旨在深入剖析关键控制参数对系统稳定性与动态性能的影响机制,为新能源并网系统中提升频率支撑能力和暂态稳定性的控制策略设计提供理论依据和技术支持。; 适合人群:具备扎实的电力系统分析与自动控制理论基础,熟练掌握Matlab/Simulink仿真工具,主要从事新能源发电、微电网运行、电力电子变换器控制或电力系统稳定研究的研究生、科研人员及工程技术人员。; 使用场景及目标:①开展虚拟同步发电机(VSG)的建模与先进控制策略的深入研究;②探究自适应惯量与阻尼控制对改善电网频率响应速度和平抑功率波动的作用机理;③运用根轨迹法进行系统稳定性分析,并指导控制器参数的优化整定;④完成高水平学术论文撰写或科研项目申报所需的仿真复现实验。; 阅读建议:本资源以“完全复现”为核心目标,提供了完整的仿真模型与配套代码。使用者应在深入理解同步发电机转子运动方程、虚拟惯量及阻尼物理意义的基础上,结合电力系统暂态稳定理论,逐步操作并调试仿真模型,尤其需关注不同调节系数变化对系统动态性能指标(如超调量、调节时间)的影响,从而深化对VSG内在控制机制与稳定边界的认知。
员工满意度数据集(11列,12000 条记录)CSV 合成
详情介绍:该 HR 员工数据集含 12,000 条 ×11 列(满意度、绩效评估、项目数、月均工时、司龄、工伤、福利包、晋升、部门、薪资),无缺失值但无离职标签列,且存在数据质量问题(141 条负绩效评估、144 条负工时、49.4% 异常高工伤率、项目数仅 0/1/2),疑似经过修改或合成,不能直接做经典的员工离职预测,适合做满意度回归、薪资三分类、晋升预测或员工聚类分析,使用前必须清洗异常值并注意数据真实性限制。
科技服务机构如何通过数据服务增强市场竞争力?.docx
科技服务机构如何通过数据服务增强市场竞争力?
基于双向DC-DC变换器的储能电池SOC充电+放电双模式Simulink仿真
内容概要:本文详细介绍了一种基于双向DC-DC变换器的储能电池SOC(荷电状态)充放电双模式Simulink仿真模型,旨在实现储能系统在充电与放电两种工作模式下的智能切换与精确控制。该模型依托Simulink平台搭建,通过检测电池SOC实时值,动态判断并切换充放电模式,有效防止过充与过放,提升电池使用寿命与能量利用效率。系统涵盖双向功率变换、电压电流双闭环控制、模式切换逻辑及保护机制等关键环节,充分体现了电力电子变换与电池管理系统(BMS)的深度融合。该仿真模型适用于微电网、电动汽车及可再生能源系统中的能量管理研究,为优化储能调度策略、提高系统稳定性提供了可靠的技术支撑。; 适合人群:具备一定电力电子技术、自动控制理论及Simulink建模基础,从事新能源、储能系统、电力系统仿真等相关领域的研究生、科研人员及工程技术人员。; 使用场景及目标:①研究储能电池在不同负载或发电条件下的充放电动态行为;②优化电池管理系统中SOC估算精度与充放电控制策略;③验证双向DC-DC变换器在能量双向流动中的响应特性与控制性能;④为微电网能量调度、电动汽车能量回收、风光储一体化系统等实际应用场景提供仿真验证与设计依据。; 阅读建议:建议结合Simulink仿真环境动手实践,深入理解主电路拓扑、控制环路设计及模式切换逻辑,同时可配合相关文献资料进一步探究PI控制、滞环控制等算法对系统动态性能的影响,以全面提升对储能系统能量管理机制的认知与设计能力。


Web 开发
