怎么解决java中的http请求乱码?针对这个问题,今天小编总结了这篇文章,希望能帮助更多想解决这个问题的朋友找到更加简单易行的办法。
HTTP简介
HTTP又名超文本传输协议(HyperText Transfer Protocol)是互联网上应用最为广泛的一种网络协议。所有的WWW文件都必须遵守这个标准。设计HTTP最初的目的是为了提供一种发布和接收HTML页面的方法。1960年美国人Ted Nelson构思了一种通过计算机处理文本信息的方法,并称之为超文本(hypertext),这成为了HTTP超文本传输协议标准架构的发展根基。Ted Nelson组织协调万维网协会(World Wide Web Consortium)和互联网工程工作小组(Internet Engineering Task Force )共同合作研究,最终发布了一系列的RFC,其中著名的RFC 2616定义了HTTP 1.1。
HTTP请求乱码解决方案一
接着上面的代码,用我们最常用的方式,一行一行的读,charset 同上面一样。
StringBuffer sb = new StringBuffer("");
in = new BufferedReader(new InputStreamReader(inStream, charset));
String line = "";
while ((line = in.readLine()) != null){
sb.append(line);
}
result = sb.toString();
HTTP请求乱码解决方案二
这也是最简单的方式,主要是用IOUtils
工具类。
URL realUrl = new URL(url);
// 打开和URL之间的连接
conn = (HttpURLConnection) realUrl.openConnection();
// 发送POST请求必须设置如下两行
conn.setRequestMethod(StringUtils.upperCase(type));// 提交模式
conn.setDoInput(true);
conn.setDoOutput(true);
conn.setUseCaches(false);
conn.setRequestProperty("Connection", "close");
conn.setConnectTimeout(3000); //设置连接主机超时(单位:毫秒)
conn.setReadTimeout(2000); //设置从主机读取数据超时(单位:毫秒)
//省略一些代码
//获取InputStream
InputStream inStream = conn.getInputStream();
//通过IOUtils 转化,把流转换为字符串。
//charset为编码格式,可选为"utf-8","gbk","gb2312"等等
String result = IOUtils.toString(inStream,charset);
关于解决java中的http请求乱码的方法就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。
亿速云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。