http接口返回文件 服务端和客户端

服务端:

    @RequestMapping(value = "/lsj", method = {RequestMethod.POST, RequestMethod.GET}, produces = {"text/plain;charset=UTF-8"})
    @ResponseBody
    public String searchLsjDzzz(String jsonStr,HttpServletResponse httpServletResponse) {
        byte[] dzzz = null;
        //下载PDF
        httpServletResponse.setHeader("Content-Disposition", "attachment;Filename=" + UUID.randomUUID()+".pdf");
        OutputStream outputStream = httpServletResponse.getOutputStream();
        outputStream.write(dzzz);
        outputStream.close();

        return "";
    }

客户端:

    public byte[] requestByGetToByte(String url,String charset){
        if (url == null || "".equals(url))
        {
            log.error("request url is empty.");
            return null;
        }
        HttpClient httpClient = CustomHttpClient.GetHttpClient();
        HttpGet get = new HttpGet(url);
        get.setHeader("Content-Type", "text/html;charset="+charset);
        HttpResponse resp = null;
        try
        {
            // 发起交易
            resp = httpClient.execute(get);
            // 响应分析
            HttpEntity entity = resp.getEntity();
            byte[] bytes= EntityUtils.toByteArray(entity);

            return bytes;
        } catch (ConnectTimeoutException cte){
            log.error(cte.getMessage(), cte);
            return null;
        } catch (SocketTimeoutException cte){
            log.error(cte.getMessage(), cte);
            return null;
        } catch (Exception e){
            log.error(e.getMessage(), e);
            return null;
        }finally{
            try {
                if(resp!=null){
                    resp.getEntity().getContent().close();
                }
            } catch (IllegalStateException e) {
                log.error(e.getMessage(), e);
            } catch (IOException e) {
                log.error(e.getMessage(), e);
            }
        }
    }
时间: 2024-08-03 00:45:21

http接口返回文件 服务端和客户端的相关文章

Mock服务端:客户端Get请求,返回json数据两种方式

Mock服务端:客户端Get请求,返回json数据两种方式:1,直接在response中返回json数据 2,通过json文件返回: 准备工作: wiremock-body-transformer-1.1.6.jar wiremock-standalone-2.14.0.jar 安装java运行环境(jdk等) 一,直接在response中返回: 说明: mappings : 对应请求request位置 __files : 对应响应reponse位置 mappings中增减文件:get.json

C# Socket服务端与客户端通信(包含大文件的断点传输)

步骤: 一.服务端的建立 1.服务端的项目建立以及页面布局 2.各功能按键的事件代码 1)传输类型说明以及全局变量 2)Socket通信服务端具体步骤:   (1)建立一个Socket   (2)接收信息   (3)发送数据(这里分发送字符串.文件(包含大文件).震动) 二.客户端的建立 1.服务端的项目建立以及页面布局 2.各功能按键的事件代码 1)传输类型说明以及全局变量 2)Socket通信服务端具体步骤:   (1)建立一个Socket   (2)接收信息   (3)发送数据(这里分发送

webService服务端和客户端开发 简单实例

这几天一直在看webService相关的知识. webService是一个跨平台访问的第三方插件,方便易用,多平台使用. 开发中我们可能自己是服务端,提供webService接口给别人访问我们的系统:也有可能我们调用别人的webService接口去访问别人的系统(比如查询天气预报). 下面是服务端和客户端的开发,实际开发中我们只是其中一方. 服务端开发: ①创建一个服务类,运行main方法发布即可,服务端就开发完成了. package com.lijianbo.service; import j

使用Apache CXF开发WebServices服务端、客户端

在前一篇的博客中,我使用Xfire1.x来开发了WebServies的服务端. 但是如果你访问Apache的官网,可以看到xfire已经被合并了. 最新的框架叫做CXF. Apache CXF = Celtix + XFire. CXF 继承了 Celtix 和 XFire 两大开源项目的精华, 提供了对 JAX-WS 全面的支持,并且提供了多种 Binding .DataBinding.Transport 以及各种 Format 的支持,并且可以根据实际项目的需要,采用代码优先(Code Fi

socket服务端和客户端

#!/usr/bin/env python#encoding: utf-8import socketdef handle_request(client): buf = client.recv(1024) client.send("HTTP/1.1 200 OK\r\n\r\n") client.send("Hello, World") def main(): sock = socket.socket(socket.AF_INET, socket.SOCK_STREA

用Java实现HTTP Multipart的服务端和客户端

今天简单介绍一下如何用Java支持HTTP Multipart的request和response. 整个项目的代码可以在https://github.com/mcai4gl2/multi下载. 在这个程序里,我们的业务场景很简单.在服务端有一个随机数生成器,可以生成随机的Integer和Guid,客户端通过服务,可以请求一个或多个随机数.同时,客户端可以向服务端发送一个或多个随机数,这些随机数会被加入到一个队列中,被其他的客户端通过请求获得.以下是我们的随机数Bean的定义: [java] vi

DSAPI多功能组件编程应用-HTTP监听服务端与客户端_指令版

前面介绍了DSAPI多功能组件编程应用-HTTP监听服务端与客户端的内容,这里介绍一个适用于更高效更快速的基于HTTP监听的服务端.客户端. 在本篇,你将见到前所未有的超简化超傻瓜式的HTTP监听服务,与前篇中的不同,在DSAPI中,指令版同时包含了服务端与客户端. 先来看一下使用方法,几乎不需要太多的说明,当然,它是支持事件的.所谓指令版,即服务端和客户端收发都是基于短字串的,比如客户端发一个"hello",服务端收到这个指令后返回一个"Hi".为确保传输的数据有

C# 编写WCF简单的服务端与客户端

http://www.wxzzz.com/1860.html Windows Communication Foundation(WCF)是由微软开发的一系列支持数据通信的应用程序框架,可以翻译为Windows 通讯开发平台.整合了原有的windows通讯的 .net Remoting,WebService,Socket的机制,并融合有HTTP和FTP的相关技术.是Windows平台上开发分布式应用最佳的实践方式. 今天带如何一步一步实现WCF服务端与客户端的开发及基础讲解. 一.在Visual

上传文件 服务端模拟存储

这里可以选用Parcelable来进行序列化,parcelable效率更高,我这里选用的是serializable 服务端和客户端都要有此文件,并且所在的包名要一致 不懂可以参考parcelable(http://www.cnblogs.com/mydomainlistentome/p/4687173.html); package lyl.sole.util; import java.io.Serializable; public class SerializUtil implements Se