技术标签: HttpClient 带参数Get请求 HttpClient
本例中使用HttpClient Get请求下载存储系统中的文件。根据存储系统提供的接口文档需要传入参数。
filename:存储系统上存储的唯一文件名。(文件名一般是文件上传时生成一个唯一的文件夹路径,这个路径保存在数据库中,要下载文件时,数据库中取出文件夹路径名,去存储系统上下载)
输入流,以流的形式返回,不需要保存在本地浪费资源,使用时调用方法传参拿到返回值就可以使用
eg:
public static InputStream doGet(String filename) {
//创建HttpClient实例
CloseableHttpClient httpClient = HttpClients.createDefault();
StringBuffer stringBuffer = new StringBuffer();
//拼接get请求URL(url一般包含接口需要的用户名,密码,文件名等参数)
String url = stringBuffer.append(EmailGradeTask.EMAILGRADETASKDOWNLOADURL).append(filename).toString();
InputStream inputStream = null;
try {
//创建get方法连接实例,在get方法中传入待连接地址
HttpGet httpGet = new HttpGet(url);
//发起请求,并返回请求响应
HttpResponse httpResponse = httpClient.execute(httpGet);
//得到响应实体
HttpEntity entity = httpResponse.getEntity();
//得到实体中文件
inputStream = entity.getContent();
long length = entity.getContentLength();
if (length <= 0) {
System.out.println("下载文件不存在!");
return inputStream;
}
System.out.println("The response value of token:" + httpResponse.getFirstHeader("token"));
} catch (IOException e) {
e.printStackTrace();
} catch (Exception e) {
e.printStackTrace();
} finally {
// try {
// if (inputStream != null) {
// inputStream.close();
// }
// } catch (IOException e) {
// e.printStackTrace();
// }
}
return inputStream;
}
public static String httpClientBySina() throws Exception{
// 创建Httpclient对象
CloseableHttpClient httpclient = HttpClients.createDefault();
// 定义请求的参数
URI uri = new URIBuilder("https://hq.sinajs.cn/").setParameter("rn", "1563526094204").setParameter("list", "USDCNY").build();
// 创建http GET请求
HttpGet httpGet = new HttpGet(uri);
//response 对象
CloseableHttpResponse response = null;
String resultString="0";
try {
// 执行http get请求
response = httpclient.execute(httpGet);
// 判断返回状态是否为200
if (response.getStatusLine().getStatusCode() == 200) {
resultString = EntityUtils.toString(response.getEntity(), "UTF-8");
// System.out.println("内容长度:" + resultString);
} else {
throw new Exception("新浪接口获取汇率失败!");
}
} finally {
if (response != null) {
response.close();
}
httpclient.close();
}
return resultString;
}
文章浏览阅读253次。webstorm是一个前端开发神器。安装webstorm之前需要配置jdk。配置好jdk之后再进行安装webstorm;1.下载链接jdk:http://download.oracle.com/otn-pub/java/jdk/8u73-b02/jdk-8u73-linux-i586.tar.gz?AuthParam=1472692770_2276e0b95c38424d5105a4357..._webstorm需要配置jdk吗
文章浏览阅读874次。平衡二叉树的判断(左右子树的高度差只能为-1,0,1)#include<stdio.h>#include<stdlib.h>#include<queue>#include <iostream>#define MAXSIZE 10010#define ElemType intusing namespace std;typedef struct BTNode{ ElemType data; BTNode *lchild,*._balance treec语言
文章浏览阅读1.8k次。参考:http://hi.baidu.com/ayongs/item/30f784122c8d51a5ffded509http://www.2cto.com/database/201108/101151.htmlhttp://www.laruence.com/2008/01/05/12.htmlmysql5.1参考手册一.mysql字符集MySQ_msyql cli 登录 --default-character-set=charset
文章浏览阅读1.1k次。函数void convertTo( OutputArray m, int rtype, double alpha=1, double beta=0 ) const;参数m – 目标矩阵。如果m在运算前没有合适的尺寸或类型,将被重新分配。rtype – 目标矩阵的类型。因为目标矩阵的通道数与源矩阵一样,所以rtype也可以看做是目标矩阵的位深度。如果rtype为负值,..._图像标记矩阵转化
文章浏览阅读505次。解决:给级联选择器加key,key的值是:new Date().getTime(),在每次数据改变的时候更新key,即this.keyIndex = new Date().getTime()我的报错使用场景:级联选择器是遍历出来的,数据也是遍历的数组里面的,报错的原因是我删除了option绑定的数组,因为后台接口不需要这个数据。但是这个方法是有默认参数的,当不满足自己的需要,需要传其他参树的时候,搜索的建议面板和原来的dom不是同一个dom。在获取到数据之后,对数据进行整体处理。_某个el-cascader展开项跑到另一个el-cascade下面
文章浏览阅读6.8k次,点赞2次,收藏38次。“Warning[Pe550]: variable “变量” was set but neverused”原因:变量定义赋值了但从未使用解决:变量定义删了就可以,编译器也不会真的给这个变量分配空间Warning[Pe223]: function “函数名” declared implicitly "原因:这个函数隐式声明。意思是在他调用的地方找不到函数原型。解决:在调用的地方增加相应函数头文件的函数原型申明。"Warning[Pe177]: function “函数名” was.._was declared but never referenced
文章浏览阅读4.6k次,点赞2次,收藏10次。作者:陈健Node.js有许多框架可以选择,包括老牌的express,koa,新晋的egg,nest等等首先可以通过一个表格来看一下各个框架的受欢迎程度:1.ExpressExpress是一款基于node.js以及ChromeV8引擎,快速、极简的JS服务端开发框架,它提供了用来开发强壮的web/移动应用,以及API的所有功能。并且开发人员还能够方便地为它开发插件和扩展,从而增加Expr..._node.js后端框架及作用
文章浏览阅读5.6k次。看了几遍网上的博客一直没有 模拟出鼠标点击事件和按钮事件,后来抱着试试态度再重试的时候终于有所斩获。下面把具体的情况记录一下:首先我们必须了解类 Instrumentation:Instrumentation发送键盘鼠标事件:Instrumentation提供了丰富的以send开头的函数接口来实现模拟键盘鼠标,如下所述:sendCharacterSync(int keyCode)_android instrumentation sendstringsyn
文章浏览阅读3.9k次。在javascript编程中,多使用location.reload实现页面刷新。 reload = function(){window.location.reload(); }onclick="reload();" 然后通过一个标签,设置 onclick 就可以调用了。window.location.reload();_"onclick=\"location.reload()"
文章浏览阅读1.7k次。tar xvfz ImageMagick-6.6.9-5.tar.gzcd ImageMagick-6.6.9-5export CPPFLAGS=-I/home/admin/ImageMagick_build/includeexport LDFLAGS=-L/home/admin/ImageMagick_build/lib./configure --prefix=/home_magick 合并图像 成 gif
文章浏览阅读1.1k次。http://msdn.microsoft.com/zh-cn/library/system.data.datarow(v=vs.110).aspx_.net 声明datarow
文章浏览阅读1.6k次。本文下载链接:[学习笔记]第02章_物理层-打印版.pdf本章最重要的内容是:(1)物理层的任务。(2)几种常用的信道复用技术。(3)几种常用的宽带接入技术,主要是ADSL和FTTx。一、物理层的基本概念1、物理层简介(1)物理层在连接各种计算机的传输媒体上传输数据比特流,而不是指具体的传输媒体。(2)物理层的作用是尽可能地屏蔽掉传输媒体和通信手段的差异。(3)用于物理层的协议..._物理层的电气连接方式可分为