首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

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

2013-10-07 
用Java实现HTTP Multipart的服务端和客户端今天简单介绍一下如何用Java支持HTTP Multipart的request和resp

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

今天简单介绍一下如何用Java支持HTTP Multipart的request和response。 整个项目的代码可以在https://github.com/mcai4gl2/multi下载。

在这个程序里,我们的业务场景很简单。在服务端有一个随机数生成器,可以生成随机的Integer和Guid,客户端通过服务,可以请求一个或多个随机数。同时,客户端可以向服务端发送一个或多个随机数,这些随机数会被加入到一个队列中,被其他的客户端通过请求获得。以下是我们的随机数Bean的定义:

@Override    public RandNumber[] getRandomNumbers(int num) {        HttpGet httpGet = new HttpGet(getMultipleUrl);        httpGet.setHeader("MAX_NUM_NUMS", Integer.toString(num));        try {            HttpResponse httpResponse = httpClient.execute(httpGet);            if (httpResponse.getStatusLine().getStatusCode() == HttpStatus.SC_OK) {                ByteArrayDataSource source = new ByteArrayDataSource(httpResponse.getEntity().getContent(),                        "multipart/mixed");                MimeMultipart multipart = new MimeMultipart(source);                List<RandNumber> numbers = new ArrayList<RandNumber>();                for (int index = 0; index < multipart.getCount(); index++) {                    numbers.add(randomNumberSerializer.deserializeRandomNumber(multipart.getBodyPart(index).getInputStream()));                }                return numbers.toArray(new RandNumber[numbers.size()]);            } else {                HttpEntity httpDataEntity = httpResponse.getEntity();                EntityUtils.consumeQuietly(httpDataEntity);                return null;            }        } catch (Exception ex) {            log.error("Failed to get multiple random numbers", ex);            return null;        }    }

除了代码,我还添加了Maven打包配置和发布到local tomcat的脚本。整个Maven项目会被打包成两个文件,一个JAR和一个WAR。JAR打包包含了一个Jetty的服务端程序入口,和一个SampleClient的程序入口。而另一个WAR包可以直接发布到Tomcat上进行调试。这些都是为了我们可以更方便的在本地进行代码调试,在tomcat的启动脚本中,我还打开了JPDA端口,这样我们可以通过IDE对部署在Tomcat上的服务端进行调试。

这些基本的配置,可以大大提高我们编程调试的效率。这也是我写这篇文章的另一个原因。希望这些配置,可以帮到有需要的朋友。



热点排行