java发送http get请求的两种方式

 更新时间:2017年05月26日 08:46:38   作者:小明快点跑  
这篇文章主要为大家详细介绍了java发送http get请求的两种方式,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

长话短说,废话不说

一、第一种方式,通过HttpClient方式,代码如下:

public static String httpGet(String url, String charset)
   throws HttpException, IOException {
  String json = null;
  HttpGet httpGet = new HttpGet();
  // 设置参数
  try {
   httpGet.setURI(new URI(url));
  } catch (URISyntaxException e) {
   throw new HttpException("请求url格式错误。"+e.getMessage());
  }
  // 发送请求
  HttpResponse httpResponse = client.execute(httpGet);
  // 获取返回的数据
  HttpEntity entity = httpResponse.getEntity();
  byte[] body = EntityUtils.toByteArray(entity);
  StatusLine sL = httpResponse.getStatusLine();
  int statusCode = sL.getStatusCode();
  if (statusCode == 200) {
   json = new String(body, charset);
   entity.consumeContent();
  } else {
   throw new HttpException("statusCode="+statusCode);
  }
  return json;
}

二、第二种方式,通过流的形式,贴代码:

  /**
  * 发送http get请求
  * 
  * @param getUrl
  * @return
  */
  public String sendGetRequest(String getUrl)
  {
   StringBuffer sb = new StringBuffer();
   InputStreamReader isr = null;
   BufferedReader br = null;
   try
   {
     URL url = new URL(getUrl);
     URLConnection urlConnection = url.openConnection();
     urlConnection.setAllowUserInteraction(false);
     isr = new InputStreamReader(url.openStream());
     br = new BufferedReader(isr);
     String line;
     while ((line = br.readLine()) != null)
     {
      sb.append(line);
     }
   }
   catch (IOException e)
   {
     e.printStackTrace();
   }
   finally
   {
     fileOperator.closeResources(isr, br);
   }
   return sb.toString();
  }
}

这两种实现方式不同,怎么使用看个人喜好吧,不过我在项目开发过程中,使用流的方式部署在预发机(linux机器)上会出现返回null的情况,但是本地windows却正常访问,而且,换另外一台预发机也能正常获取数据,目前还没有研究出个所以然。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

相关文章

  • Windows下后端如何启动SpringBoot的Jar项目

    Windows下后端如何启动SpringBoot的Jar项目

    这篇文章主要介绍了Windows下后端如何启动SpringBoot的Jar项目问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-07-07
  • 多数据源如何实现事务管理

    多数据源如何实现事务管理

    Spring中涉及三个核心事务处理接口:PlatformTransactionManager、TransactionDefinition和TransactionStatus,PlatformTransactionManager提供事务操作的基本方法,如获取事务、提交和回滚
    2024-09-09
  • mybatisplus中返回Vo的案例讲解

    mybatisplus中返回Vo的案例讲解

    这篇文章主要介绍了mybatisplus中返回Vo的案例,mybatisplus内置的几个方法使用泛型限制了方法的返回类型,所以实现返回Vo还是得自定义方法, 这个方法名尽量不要和原有的名字类似,本文通过实例代码给大家详解讲解,需要的朋友可以参考下
    2023-03-03
  • MyBatis-Plus中如何实现动态表名

    MyBatis-Plus中如何实现动态表名

    这篇文章主要介绍了MyBatis-Plus中如何实现动态表名问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-07-07
  • 详解java数组进行翻转的方法有哪些

    详解java数组进行翻转的方法有哪些

    这篇文章主要介绍了详解java数组进行翻转的方法有哪些,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-01-01
  • SpringSecurity授权实现基本思路

    SpringSecurity授权实现基本思路

    本文介绍了SpringSecurity中使用FilterSecurityInterceptor进行权限校验的基本方法,通过SecurityContextHolder获取Authentication中的权限信息,感兴趣的朋友跟随小编一起看看吧
    2024-10-10
  • idea2019.1.4 鼠标放到方法上显示注解的实现操作

    idea2019.1.4 鼠标放到方法上显示注解的实现操作

    这篇文章主要介绍了idea2019.1.4 鼠标放到方法上显示注解的实现操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2021-02-02
  • Spring配置文件使用占位符配置方式

    Spring配置文件使用占位符配置方式

    这篇文章主要介绍了Spring配置文件使用占位符配置方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-11-11
  • Spring Boot中的那些条件判断的实现方法

    Spring Boot中的那些条件判断的实现方法

    这篇文章主要介绍了Spring Boot中的那些条件判断的实现方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-04-04
  • Springboot整合Mybatis传值的常用方式总结

    Springboot整合Mybatis传值的常用方式总结

    今天给大家带来的是关于Springboot的相关知识,文章围绕着Springboot整合Mybatis传值的常用方式展开,文中有非常详细的介绍及代码示例,需要的朋友可以参考下
    2021-06-06

最新评论