长话短说,废话不说

一、第一种方式,通过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却正常访问,而且,换另外一台预发机也能正常获取数据,目前还没有研究出个所以然。。。

以上这篇java发送http get请求的两种方法(总结)就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持脚本之家。

java发送get请求_java发送http get请求的两种方法(总结)相关推荐

  1. 【短信发送】实现腾讯云发送短信功能--工具类和SpringBoot配置两种方法实现

    实现腾讯云发送短信功能--工具类和SpringBoot配置两种方法实现 一.开通腾讯云短信服务 二.工具类--使用qcloudsms实现短信发送 三.Spring Boot项目引入短信发送功能 我们发 ...

  2. java校验码的设计_Java动态验证码单线设计的两种方法

    1.java的动态验证码我这里将介绍两种方法: 一:根据java本身提供的一种验证码的写法,这种呢只限于大家了解就可以了,因为java自带的模式编写的在实际开发中是没有意义的,所以只供学习一下就可以了 ...

  3. java中map类型_Java中Map类型遍历的两种方式对比

    Java中Map类型是存储键值对数据的类型,在编程过程经常使用,进行遍历操作对于每个Java程序员都不会模式,下面总结两种常用的遍历方式(一种keySet,一种entrySet),通过对比让你明白使用 ...

  4. 【错误记录】NDK 导入外部 so 动态库报错 ( java.lang.UnsatisfiedLinkError | Android Studio 配置外部 so 动态库两种方法 )

    文章目录 一.报错信息 二.解决方案 ( Android Studio 配置外部 so 动态库两种方法 ) 1.jniLibs 目录存放 2.libs 目录存放 一.报错信息 外部引用 so 动态库 ...

  5. java操作oracle数据_Java jdbc操作oracle数据库的两种方式

    本文由广州疯狂软件java培训分享: 第一种应该是比较古老的方法了. Windows下采用JDBC-ODBC Bridge连接oracle数据库 1. 安装oracle客户端程序,在tnsnames. ...

  6. web java获取当前时间_Java 获取当前系统时间的三种方法

    准备工作: import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Date; 方式一: /** ...

  7. java 镶嵌创建线程_Java多线程——之一创建线程的四种方法

    1.实现Runnable接口,重载run(),无返回值 package thread; public class ThreadRunnable implements Runnable { public ...

  8. java 获取键盘输入法_Java中接收键盘输入的三种方法

    import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import ...

  9. java数据同步解决方案_Java实现多线程数据同步的几种方法

    1. 应用背景 程序在设计当中如果采取多线程操作的时候,如果操作的对象是一个的话,由于多个线程共享同一块内存空间,因此经常会遇到数据安全访问的问题,下面看一个经典的问题,银行取钱的问题:1).你有一张 ...

  10. vue 获取请求url_vue 获取url里参数的两种方法小结

    我就废话不多说了,大家还是直接看代码吧~ 第一种: const query = Qs.parse(location.search.substring(1)) let passport = query. ...

最新文章

  1. android java 中文乱码_android读写中文如何避免乱码详解
  2. python3 进度条_详细介绍Python进度条tqdm的使用
  3. WPF - Group分组对ListBox等列表样式的约束
  4. c++ linux 线程等待与唤醒_Linux线程同步(互斥量、信号量、条件变量、生产消费者模型)...
  5. Shadow of Survival
  6. java webservice接口开发_给Java新手的一些建议----Java知识点归纳(J2EE and Web 部分)
  7. CVPR 2022 中科院、腾讯提出LAS-AT,利用“可学习攻击策略”进行“对抗训练”
  8. mui PopPicker面板关闭后的回调函数
  9. a站、b站、c站、d站、e站、f站、g站、h站、i站、j站、k站、l站、m站、n站…z站?...
  10. 基于Java毕业设计幼儿园教育管理信息系统演示2021源码+系统+mysql+lw文档+部署软件
  11. win10游戏不能窗口化怎么办?全屏游戏切换窗口的方法
  12. 解决Access denied for user ''@'localhost' to database 'mysql'问题
  13. 16进制地址编码速算内存容量
  14. 老毛桃PE工具安装32位win7系统ISO镜
  15. 男男java_猛男学习Java的第二天
  16. Python数据分析之获取数据
  17. 数据分析系列:归因分析原理、案例(附python代码)
  18. lvgl 8 中文内置字库配置
  19. 用python搭建 百万答题 、自动百度搜索答案
  20. 如何使用Proteus进行电路设计仿真?

热门文章

  1. 问题解决——出现符号 (在需要下列之一时
  2. java基础考试_java基础笔试题
  3. VS Code 设置代码自动保存
  4. 高碳醇类乳状液消泡剂还是一如既往让泡沫感觉到绝望
  5. 顺丰同城入局洗衣行业 与浣洗合作提升用户体验
  6. node.js(六)之crawler爬虫模块爬取王者荣耀官网所有英雄资源信息
  7. Neo4j 任命方俊强为大中华区总经理
  8. java内聚 耦合_什么是内聚?什么是耦合?
  9. 机器人操作——diffusion policy(2023)
  10. 【WINDOWS / DOS 批处理】call命令详解