java发送get请求_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却正常访问,而且,换另外一台预发机也能正常获取数据,目前还没有研究出个所以然。。。
以上这篇java发送http get请求的两种方法(总结)就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持脚本之家。
java发送get请求_java发送http get请求的两种方法(总结)相关推荐
- 【短信发送】实现腾讯云发送短信功能--工具类和SpringBoot配置两种方法实现
实现腾讯云发送短信功能--工具类和SpringBoot配置两种方法实现 一.开通腾讯云短信服务 二.工具类--使用qcloudsms实现短信发送 三.Spring Boot项目引入短信发送功能 我们发 ...
- java校验码的设计_Java动态验证码单线设计的两种方法
1.java的动态验证码我这里将介绍两种方法: 一:根据java本身提供的一种验证码的写法,这种呢只限于大家了解就可以了,因为java自带的模式编写的在实际开发中是没有意义的,所以只供学习一下就可以了 ...
- java中map类型_Java中Map类型遍历的两种方式对比
Java中Map类型是存储键值对数据的类型,在编程过程经常使用,进行遍历操作对于每个Java程序员都不会模式,下面总结两种常用的遍历方式(一种keySet,一种entrySet),通过对比让你明白使用 ...
- 【错误记录】NDK 导入外部 so 动态库报错 ( java.lang.UnsatisfiedLinkError | Android Studio 配置外部 so 动态库两种方法 )
文章目录 一.报错信息 二.解决方案 ( Android Studio 配置外部 so 动态库两种方法 ) 1.jniLibs 目录存放 2.libs 目录存放 一.报错信息 外部引用 so 动态库 ...
- java操作oracle数据_Java jdbc操作oracle数据库的两种方式
本文由广州疯狂软件java培训分享: 第一种应该是比较古老的方法了. Windows下采用JDBC-ODBC Bridge连接oracle数据库 1. 安装oracle客户端程序,在tnsnames. ...
- web java获取当前时间_Java 获取当前系统时间的三种方法
准备工作: import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Date; 方式一: /** ...
- java 镶嵌创建线程_Java多线程——之一创建线程的四种方法
1.实现Runnable接口,重载run(),无返回值 package thread; public class ThreadRunnable implements Runnable { public ...
- java 获取键盘输入法_Java中接收键盘输入的三种方法
import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import ...
- java数据同步解决方案_Java实现多线程数据同步的几种方法
1. 应用背景 程序在设计当中如果采取多线程操作的时候,如果操作的对象是一个的话,由于多个线程共享同一块内存空间,因此经常会遇到数据安全访问的问题,下面看一个经典的问题,银行取钱的问题:1).你有一张 ...
- vue 获取请求url_vue 获取url里参数的两种方法小结
我就废话不多说了,大家还是直接看代码吧~ 第一种: const query = Qs.parse(location.search.substring(1)) let passport = query. ...
最新文章
- 交换机软件IOS升级更简化了
- linux socket无延迟发送数据
- 列出我所知道的图像处理库
- (6)SMC接口采集数据出现错误(学无止境)
- gerber文件_90%的工程师容易忽视(一):PCB输出gerber文件,这样操作才正确!
- php日期数组,关于php日期数组的用法汇总
- Spark Streaming 之foreachRDD 输出
- phpPgAdmin-5.1安装配置
- mysql三表联合查询_求三表联合查询的SQL查询语句
- python报时功能_Python(PyS60)做的简单语音整点报时的实现
- docker安装zabbix怎样修改图标和登录页文字
- MarkDown中使用gif的神器:LICEcap
- Linux的下Ip计算器
- 计算机装固态硬盘会不会卡,加装SSD固态硬盘,电脑还是卡?揭晓背后原因,教你10S开机!...
- 如何快速下载720yun场景图片
- 常用的几种设计模式详解
- 统计分析——描述统计之数据水平描述
- JavaScript逆向实战:admin加密成WaQ7xbhc9TefbwK是什么加密算法?逆向思维考验、详细流程图解
- 解决安装调试gym出现UserWarning: WARN: The environment Humanoid-v2 is out of date.
- 每日算法7 —— UVa156 Ananagrams