zoukankan      html  css  js  c++  java
  • 发送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;
        }
  • 相关阅读:
    如何设计一个安全的对外接口?
    Java架构师必须知道的 6 大设计原则
    Spring Boot 如何快速改造老项目?
    Java 类中可以覆盖静态方法吗?
    Dubbo 的心跳设计,值得学习!
    在滴滴和头条干了 2 年后端开发,太真实…
    别乱提交代码了,看下大厂 Git 提交规范是怎么做的!
    3种骚操作,教你查看 Java 字节码!
    sysbench测试服务器性能
    mysql DDL时出现的锁等待状态
  • 原文地址:https://www.cnblogs.com/zhaoyan001/p/9890159.html
Copyright © 2011-2022 走看看