java 中http请求为了防止乱码解决方案

发布时间 - 2026-01-10 23:16:06    点击率:

java 中http请求为了防止乱码解决方案

今天做一个与地图有关的项目,需要发起http请求地图数据

写了一个工具类,希望大家都能用上吧

package com.lrdd.utils;


import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.io.PrintWriter;
import java.net.URL;
import java.net.URLConnection;
import java.util.List;
import java.util.Map;

public class HttpRequest {
  /**
   * 向指定URL发送GET方法的请求
   * 
   * @param url
   *      发送请求的URL
   * @param param
   *      请求参数,请求参数应该是 name1=value1&name2=value2 的形式。
   * @return URL 所代表远程资源的响应结果
   */
  public static String sendGet(String url, String param) {
    String result = "";
    BufferedReader in = null;
    try {
      String urlNameString = url + "?" + param;
      URL realUrl = new URL(urlNameString);
      // 打开和URL之间的连接
      URLConnection connection = realUrl.openConnection();
      // 设置通用的请求属性
      connection.setRequestProperty("accept", "*/*");
      connection.setRequestProperty("connection", "Keep-Alive");
      connection.setRequestProperty("user-agent",
          "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1;SV1)");
      // 建立实际的连接
      connection.connect();
      // 获取所有响应头字段
      Map<String, List<String>> map = connection.getHeaderFields();
      // 遍历所有的响应头字段
      for (String key : map.keySet()) {
        System.out.println(key + "--->" + map.get(key));
      }
      // 定义 BufferedReader输入流来读取URL的响应
      in = new BufferedReader(new InputStreamReader(
          connection.getInputStream()));
      String line;
      while ((line = in.readLine()) != null) {
        result += line;
      }
    } catch (Exception e) {
      System.out.println("发送GET请求出现异常!" + e);
      e.printStackTrace();
    }
    // 使用finally块来关闭输入流
    finally {
      try {
        if (in != null) {
          in.close();
        }
      } catch (Exception e2) {
        e2.printStackTrace();
      }
    }
    return result;
  }

  /**
   * 向指定 URL 发送POST方法的请求
   * 
   * @param url
   *      发送请求的 URL
   * @param param
   *      请求参数,请求参数应该是 name1=value1&name2=value2 的形式。
   * @return 所代表远程资源的响应结果
   */
  public static String sendPost(String url, String param) {
    PrintWriter out = null;
    BufferedReader in = null;
    String result = "";
    try {
      URL realUrl = new URL(url);
      // 打开和URL之间的连接
      URLConnection conn = realUrl.openConnection();
      // 设置通用的请求属性
      conn.setRequestProperty("accept", "*/*");
      conn.setRequestProperty("connection", "Keep-Alive");
      conn.setRequestProperty("user-agent",
          "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1;SV1)");
      // 发送POST请求必须设置如下两行
      conn.setDoOutput(true);
      conn.setDoInput(true);
      // 获取URLConnection对象对应的输出流
      out = new PrintWriter(new OutputStreamWriter(conn.getOutputStream(),"utf-8"));
      // 发送请求参数
      out.print(param);
      // flush输出流的缓冲
      out.flush();
      // 定义BufferedReader输入流来读取URL的响应
      in = new BufferedReader(
          new InputStreamReader(conn.getInputStream(),"utf-8"));
      String line;
      while ((line = in.readLine()) != null) {
        result += line;
      }
    } catch (Exception e) {
      System.out.println("发送 POST 请求出现异常!"+e);
      e.printStackTrace();
    }
    //使用finally块来关闭输出流、输入流
    finally{
      try{
        if(out!=null){
          out.close();
        }
        if(in!=null){
          in.close();
        }
      }
      catch(IOException ex){
        ex.printStackTrace();
      }
    }
    return result;
  }  
}

感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!


# java  # 中http请求为了防止乱码  # http请求  # http请求防止乱码  # Java Http请求传json数据乱码问题的解决  # HttpServletResponse乱码问题_动力节点Java学院整理  # Java中HttpServletResponse响应中文出现乱码问题  # Java Servlet响应httpServletResponse过程详解  # Java如何实现通过证书访问Https请求  # Java使用GZIP压缩导致HTTP请求返回乱码问题解决  # 应该是  # 大家都  # 遍历  # 希望能  # 做一个  # 写了  # 谢谢大家  # 为了防止  # 两行  # 上吧  # url  # param  # util  # List  # Map  # HttpRequest  # public  # sendGet  # String  # result 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: 免费制作统计图的网站有哪些,如何看待现如今年轻人买房难的情况?  如何在阿里云虚拟主机上快速搭建个人网站?  如何快速使用云服务器搭建个人网站?  Windows10如何删除恢复分区_Win10 Diskpart命令强制删除分区  Laravel如何自定义错误页面(404, 500)?(代码示例)  Laravel如何使用API Resources格式化JSON响应_Laravel数据资源封装与格式化输出  php静态变量怎么调试_php静态变量作用域调试技巧【解答】  千库网官网入口推荐 千库网设计创意平台入口  惠州网站建设制作推广,惠州市华视达文化传媒有限公司怎么样?  想要更高端的建设网站,这些原则一定要坚持!  购物网站制作费用多少,开办网上购物网站,需要办理哪些手续?  音响网站制作视频教程,隆霸音响官方网站?  JavaScript如何实现类型判断_typeof和instanceof有什么区别  如何在腾讯云服务器上快速搭建个人网站?  javascript基本数据类型及类型检测常用方法小结  如何制作公司的网站链接,公司想做一个网站,一般需要花多少钱?  网站建设保证美观性,需要考虑的几点问题!  Laravel如何实现全文搜索_Laravel Scout集成Algolia或Meilisearch教程  如何自定义建站之星网站的导航菜单样式?  Laravel如何集成第三方登录_Laravel Socialite实现微信QQ微博登录  Laravel怎么实现前端Toast弹窗提示_Laravel Session闪存数据Flash传递给前端【方法】  如何为不同团队 ID 动态生成多个独立按钮  Laravel如何安装Breeze扩展包_Laravel用户注册登录功能快速实现【流程】  Laravel如何实现文件上传和存储?(本地与S3配置)  Bootstrap整体框架之JavaScript插件架构  昵图网官网入口 昵图网素材平台官方入口  如何快速搭建虚拟主机网站?新手必看指南  Python自然语言搜索引擎项目教程_倒排索引查询优化案例  网站制作大概多少钱一个,做一个平台网站大概多少钱?  企业在线网站设计制作流程,想建设一个属于自己的企业网站,该如何去做?  Laravel如何自定义分页视图?(Pagination示例)  使用C语言编写圣诞表白程序  如何正确选择百度移动适配建站域名?  打开php文件提示内存不足_怎么调整php内存限制【解决方案】  BootStrap整体框架之基础布局组件  Laravel如何使用Livewire构建动态组件?(入门代码)  Laravel模型事件有哪些_Laravel Model Event生命周期详解  开心动漫网站制作软件下载,十分开心动画为何停播?  Laravel Debugbar怎么安装_Laravel调试工具栏配置指南  php做exe能调用系统命令吗_执行cmd指令实现方式【详解】  Laravel如何使用Gate和Policy进行权限控制_Laravel权限判定与策略规则配置  Windows Hello人脸识别突然无法使用  如何用西部建站助手快速创建专业网站?  儿童网站界面设计图片,中国少年儿童教育网站-怎么去注册?  美食网站链接制作教程视频,哪个教做美食的网站比较专业点?  如何在阿里云购买域名并搭建网站?  zabbix利用python脚本发送报警邮件的方法  高性能网站服务器部署指南:稳定运行与安全配置优化方案  Laravel如何使用Collections进行数据处理?(实用方法示例)  Laravel Session怎么存储_Laravel Session驱动配置详解