用apache的httpclient发请求和接受数据

此处发请求的是用httpclient4,请自己下载所需要的jar包。

发post请求,并得到数据。

 

String url = "http://localhost:8080/lee";url = url+ "/query/action/export.action";String exportFilePath = "lee"+".csv.";final HttpClient httpClient = new DefaultHttpClient();final HttpPost post = new HttpPost(url);List<NameValuePair> params = new ArrayList<NameValuePair>();  params.add(new BasicNameValuePair("leeSmart", leeSmart));//发post请求的参数post.setEntity(new UrlEncodedFormEntity(params,HTTP.UTF_8));final HttpResponse response = httpClient.execute(post);//得到返回的responsefinal int code = response.getStatusLine().getStatusCode();final HttpEntity entity = response.getEntity();//得到entityif (entity != null && code < 400) {InputStream inputStream = entity.getContent();//得到从服务器端返回的数据流long length = entity.getContentLength();if(length<=0) return;int len = (int)length;byte[] b = new byte[len];int readCount = 0;//建议用以下方式读inputStream为b赋值while (readCount < len) {  readCount += inputStream.read(b, readCount, len - readCount);  } //在客户端生成文件。更高效的做法是,在服务器端传过来一个压缩后的btye[],然后在客户端解压,减少传输数据。try {FileOutputStream fo1 = null;fo1 = new FileOutputStream(exportFilePath);fo1.write(b);}fo1.close();} catch (Exception e2) {e2.printStackTrace();}}

 

在action中接请求的方法export(),并返回数据流

 

try {request.setCharacterEncoding("UTF-8");} catch (UnsupportedEncodingException e1) {e1.printStackTrace();}response.setCharacterEncoding("UTF-8");String leeSmart = request.getParameter("leeSmart");//前台传过来的post参数byte[] b = null;try{List ret = serivce.query("select * from dual");//得到查询结果集//将ret放到sb中StringBuilder sb = new StringBuilder();//.......对结果集进行处理,并转成字节数组
                      b = sb.toString().getByte();}catch(Exception e){e.printStackTrace();}//如果方便,可以把b字节数组压缩一下,这样传的数据会比较小一些。//将字节数组放到response中,并返回到客户端。try {response.reset();// 设置response的Headerresponse.addHeader("Content-Disposition", "attachment;filename=" + new String("random".getBytes("UTF-8"),"ISO-8859-1"));response.addHeader("Content-Length", "" + b.length);OutputStream toClient = new BufferedOutputStream(response.getOutputStream());response.setContentType("application/octet-stream");toClient.write(b);toClient.flush();toClient.close();} catch (Exception e) {e.printStackTrace();}finally{}
 

 

 

 

转载于:https://www.cnblogs.com/suncoolcat/p/3295154.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/360449.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

使用Flyway在Java EE中进行数据库迁移

任何Java EE应用程序的数据库模式都会随着业务逻辑一起发展。 这使得数据库迁移对于任何Java EE应用程序都非常重要。 您是否还在执行应用程序时手动执行它们&#xff1f; 它仍然是一个锁定步骤过程&#xff0c;还是作为两个单独的脚本运行–一个用于应用程序部署&#xff0c;…

suse linux安装rpm包,linux – 如何为Suse创建RPM

重建现有的src.rpm可能是最简单的.我肯定不会采用configure,make,make install的方式,因为(a)不能扩展,(b)不提供容易删除/升级包和(c)不是原子的.建立RPM并不是那么难.在他们销毁网站之前,Linux.com上曾经有一个非常好的初学者教程.你可以尝试这个one,但这是很多文字,不容易消…

在wp中,使用NavigationService.Navigate导航页面出现错误

我们在WP项目中采用页面导航时候&#xff0c;经常会使用以下代码 NavigationService.Navigate(new Uri("/Page1.xaml",UriKind.Relative));但是&#xff0c;有的时候会出现错误&#xff1a; "Error 1 An object reference is required for the non-static field…

linux iso合并,把RedHat Linux 5.0的CD ISO合并成DVD的脚本

最近找RedHat Linux5.0 x86_64的DVD ISO文件&#xff0c;结果一直找不到&#xff0c;却找到了6个cd的ISO&#xff0c;因为最后一个为源码盘&#xff0c;暂时不管&#xff0c;把其他5个CD合并成一个DVD。脚本如下&#xff1a;vim dvd.sh#!/bin/bash# by Chris Kloiber# A quick …

Guava的测试集合实现

我目前正在为LibFX添加一个新功能&#xff0c;为此我创建了一些类似于Java Collections Framework的自定义集合。 我一直在寻找可以针对它们进行测试的测试&#xff0c;并很高兴发现Google的Guava包含了我所需要的&#xff1a;一个庞大的测试套件&#xff0c;它针对JDK和Guava的…

SSDT – Error SQL70001 This statement is not recognized in this context-摘自网络

March 28, 2013 — arcanecode One of the most common errors I get asked about when using SQL Server Data Tools (SSDT) Database Projects is the error “This statement is not recognized in this context”. This is actually a pretty simple error to fix. Envisi…

linux wget 图片,15个Linux Wget下载实例终极指南

9、使用wget -i下载多个文件首先&#xff0c;保存一份下载链接文件cat>filelist.txt url1 url2 url3 url4接着使用这个文件和参数-i下载wget -i filelist.txt10、使用wget --mirror镜像网站下面的例子是下载整个网站到本地。wget --mirror -p --convert-links -P ./LOCAL UR…

带有JAX-RS和PrimeFaces的RESTful图表

通常&#xff0c;利用图表提供数据的可视表示很有用。 PrimeFaces提供制图解决方案&#xff0c;可轻松将数据的可视表示形式添加到Web和移动应用程序中。 如果将PrimeFaces图表组件与RESTful Web服务数据结合使用&#xff0c;我们可以创建自定义图表&#xff0c;以适合桌面和移…

UVAlive 6131 dp+斜率优化

这道题和06年论文《从一类单调性问题看算法的优化》第一道例题很相似。 题意&#xff1a;给出n个矿的重量和位置&#xff0c;这些矿石只能从上往下运送&#xff0c;现在要在这些地方建造m个heap&#xff0c;要使得&#xff0c;sigma距离*重量最小。 思路&#xff1a;O(n ^ 3)的…

c语言错误重定义,C语言的重定义错误求解

追问那如果要用到全局变量&#xff0c;要把它写在C文件中&#xff1f;那全局变量的主要作用其实就是跨文件作用域来传递一些东西&#xff0c;写在C文件中&#xff0c;不太好在别的文件中引用吧。用的时候写extern进去&#xff1f;感觉全局变量在C里用起来比较麻烦&#xff0c…

Netty:另一种Web(套接字)服务器

如今&#xff0c; Netty已用于Internet上的各种应用程序中&#xff0c;以处理数千&#xff08;即使不是数百万&#xff09;的聊天对话&#xff0c;包括Minecraft &#xff0c; Twitter和许多其他应用程序在内的多人游戏。 但是&#xff0c;它并没有在开发企业应用程序的企业程序…

arm opcode hook

/**************************************/* 作者:半斤八兩/* 博客:http://cnblogs.com/bjblcracked/* 日期:2013-09-05 11:11/**************************************只是感兴趣&#xff0c;没有其他目的。失误之处敬请诸位大侠赐教!因工作需要,最近一直在研究arm.看到论坛也…

c语言程序整数四则运算,c语言中三个整数随机的四则运算

满意答案hors10722014.01.06采纳率&#xff1a;58% 等级&#xff1a;12已帮助&#xff1a;18274人#include #include #include #define N 10 //随机出10道题目int main(){int num1, num2, num3, count0, result,resultTrue,flag;//result:用户输入结果 resultTrue:正确结果 …

带有调试器的Apache Camel Eclipse工具

大约2个月前&#xff0c; Lars Heineman在 JBoss工具堆栈中的博客中介绍了改进的Apache Camel Eclipse工具。 在即将发布的版本中&#xff0c;他们将Camel调试器与本机Eclipse调试器集成在一起&#xff0c;因此当您使用断点时&#xff0c;您将获得Eclipse调试体验&#xff0c;…

马秀丽C语言程序设计答案pdf,C语言程序设计清华大学马秀丽刘志妩科后习题9答案.doc...

C语言程序设计清华大学马秀丽刘志妩科后习题9答案习 题 9二 编程题main(){int n,*a,i,j,t0;scanf("%d",&n);for(i0;ifor(j0;jscanf("%d",ai*nj);for(i0;ifor(j0;jif (*(ai*nj)!0) t1;if (t0) printf("is xia san jiao fang zhen");else prin…

从Gradle自动将工件提升到Maven Central

快速教程&#xff0c;无需在带有Gradle Nexus Staging插件的Nexus GUI中单击即可将Gradle项目中的工件提升/发布到Maven Central。 介绍 Maven Central &#xff08;又名“中央存储库”&#xff09;&#xff08;可能&#xff09;是世界上最大的一组开源工件&#xff0c;这些工…

c语言指针自定义函数,c语言函数指针定义,指针函数和函数指针的区别

往往&#xff0c;我们一提到指针函数和函数指针的时候&#xff0c;就有很多人弄不懂。下面就由小编详细为大家介绍C语言中函数指针&#xff0c;指针函数和函数指针之间的区别。c语言指针函数定义&#xff1a;函数指针是指向函数的指针变量。 因此“函数指针”本身首先应是指针变…

HarmonyOS的功能及场景应用

一、基本介绍 鸿蒙HarmonyOS主要应用的设备包括智慧屏、平板、手表、智能音箱、IoT设备等。具体来说&#xff0c;鸿蒙系统是一款面向全场景(移动办公、运动健康、社交通信、媒体娱乐等)的分布式操作系统&#xff0c;能够支持手机、平板、智能穿戴、智慧屏、车机等多种终端设备…

java DOM4J 读取XML

最近学习Java&#xff0c;在处理XML文档的时候&#xff0c;查阅相关资料&#xff0c;发现了DOM4J这个jre库&#xff0c;相对C#的XML处理来说&#xff0c;功能还算是跟得上 下面展示一篇我自己写的一个XML读取测试 import java.util.Iterator; import java.io.BufferedReader; i…

c语言如何实现不定参数,C语言中不定参数的实现

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼但是请注意,由於 K&R C 中并不检查参数型态&#xff0c;so 在此是用 ANSIC 来说明&#xff0c;毕竟 ANSI C 是目前所有 C Compiler 都支援的标准&#xff1b;常在网路上看到有人推荐 K&R The C Programming Language 这本书…