当前位置: 首页 > news >正文

发送HTTP_GET请求 表头application/json

/**
     * 发送HTTP_GET请求
     * 该方法会自动关闭连接,释放资源
     * @param reqURL    请求地址(含参数)
     * @param decodeCharset 解码字符集,解析响应数据时用之,其为null时默认采用UTF-8解码
     * @return 远程主机响应正文
     */
    public static String sendGetRequest(String reqURL,Map<String, String> paramMap, String decodeCharset){
        long responseLength = 0;       //响应长度
        String responseContent = null; //响应内容
        HttpClient httpClient = new DefaultHttpClient(); //创建默认的httpClient实例
        if (!paramMap.isEmpty()) {
            for (String key : paramMap.keySet()) {
                if (reqURL.indexOf('?') == -1) {
                    reqURL += "?" + key+"="+paramMap.get(key);
                } else {
                    reqURL += "&" + key+"="+paramMap.get(key);
                }
            }

        }
        HttpGet httpGet = new HttpGet(reqURL);           //创建org.apache.http.client.methods.HttpGet
        try{
            HttpResponse response = httpClient.execute(httpGet); //执行GET请求
            response.setHeader("Content-Type","application/json");
            HttpEntity entity = response.getEntity();            //获取响应实体
            if(null != entity){
                responseLength = entity.getContentLength();
                responseContent = EntityUtils.toString(entity, decodeCharset==null ? "UTF-8" : decodeCharset);
                EntityUtils.consume(entity); //Consume response content
            }
            System.out.println("请求地址: " + httpGet.getURI());
            System.out.println("响应状态: " + response.getStatusLine());
            System.out.println("响应长度: " + responseLength);
            System.out.println("响应内容: " + responseContent);
        }catch(ClientProtocolException e){
            logger.debug("该异常通常是协议错误导致,比如构造HttpGet对象时传入的协议不对(将'http'写成'htp')或者服务器端返回的内容不符合HTTP协议要求等,堆栈信息如下", e);
        }catch(ParseException e){
            logger.debug(e.getMessage(), e);
        }catch(IOException e){
            logger.debug("该异常通常是网络原因引起的,如HTTP服务器未启动等,堆栈信息如下", e);
        }finally{
            httpClient.getConnectionManager().shutdown(); //关闭连接,释放资源
        }
        return responseContent;
    }

 

转载于:https://www.cnblogs.com/zhaoyan001/p/9890159.html

相关文章:

  • 网络文件共享-SAMBA
  • 如何辨别程序员的水平?
  • jQuery清空标签内容--防止内存泄露
  • 对“工厂方法”,突然茅塞顿开
  • 算法第三章上机实践报告
  • 2018-2019-1 20165320 《信息安全系统设计基础》第六周学习总结
  • ajax实现异步上传多图并且预览
  • Redis学习之管道机制
  • fiddler安装及抓包分析
  • TP5 对于数组使用分页的方法
  • 通过K8S Ingress Controller来实现应用的流量复制
  • 主流接口测试框架对比
  • 虚拟化网络技术
  • 跨域技术
  • 微信公众号开发-业务开发03
  • -------------------- 第二讲-------- 第一节------在此给出链表的基本操作
  • Android开发 - 掌握ConstraintLayout(四)创建基本约束
  • Consul Config 使用Git做版本控制的实现
  • js数组之filter
  • python docx文档转html页面
  • Spring框架之我见(三)——IOC、AOP
  • ubuntu 下nginx安装 并支持https协议
  • V4L2视频输入框架概述
  • vagrant 添加本地 box 安装 laravel homestead
  • Vue.js源码(2):初探List Rendering
  • 安装python包到指定虚拟环境
  • 程序员该如何有效的找工作?
  • 程序员最讨厌的9句话,你可有补充?
  • 分享几个不错的工具
  • 数据库写操作弃用“SELECT ... FOR UPDATE”解决方案
  • 【云吞铺子】性能抖动剖析(二)
  • 7行Python代码的人脸识别
  • kubernetes资源对象--ingress
  • 不要一棍子打翻所有黑盒模型,其实可以让它们发挥作用 ...
  • ​批处理文件中的errorlevel用法
  • #stm32整理(一)flash读写
  • #我与Java虚拟机的故事#连载04:一本让自己没面子的书
  • #我与Java虚拟机的故事#连载18:JAVA成长之路
  • (1/2)敏捷实践指南 Agile Practice Guide ([美] Project Management institute 著)
  • (Java数据结构)ArrayList
  • (带教程)商业版SEO关键词按天计费系统:关键词排名优化、代理服务、手机自适应及搭建教程
  • (动手学习深度学习)第13章 计算机视觉---微调
  • (亲测有效)解决windows11无法使用1500000波特率的问题
  • (实战篇)如何缓存数据
  • (四) Graphivz 颜色选择
  • (转)Linux NTP配置详解 (Network Time Protocol)
  • (转)程序员技术练级攻略
  • .babyk勒索病毒解析:恶意更新如何威胁您的数据安全
  • .NET Compact Framework 3.5 支持 WCF 的子集
  • .net framework profiles /.net framework 配置
  • .Net IOC框架入门之一 Unity
  • .NET 设计模式—适配器模式(Adapter Pattern)
  • .net操作Excel出错解决
  • .NET导入Excel数据
  • .NET开发不可不知、不可不用的辅助类(一)