1

我正在开发一个 Spring Web MVC 项目,我有一个要求,我需要点击一个 URL 并从中检索 CSV。

当我手动点击 URL 时,它会提示我将 CSV 下载到文件中。我被告知这只是因为浏览器。

我还被建议使用 Apache HTTP 组件...

所以我现在有这个

            DefaultHttpClient client = new DefaultHttpClient();
            client.getCredentialsProvider().setCredentials( 
                new AuthScope(URL, PORTNUM),
                new UsernamePasswordCredentials(username, password));
            AuthCache authCache = new BasicAuthCache();
            BasicScheme basicAuth = new BasicScheme();
            authCache.put( new HttpHost( URL, PORTNUM), basicAuth);
            BasicHttpContext localContext = new BasicHttpContext();
            localContext.setAttribute( ClientContext.AUTH_CACHE, authCache);

            HttpResponse response = client.execute(get);
            HttpEntity entity = response.getEntity();

我也一直在尝试关注我公司为对该页面进行身份验证所做的另一个项目,但它略有不同。这并没有为我提供我需要的结果(当然......),因为它不完整。

我需要将响应返回到 InputStream ...

也许我对此完全错误。

4

3 回答 3

1

HttpEntity提供getContent()返回InputStream的方法。

您可以使用

InputStream is = entity.getContent()

并从那里继续。

于 2013-08-06T20:06:14.787 回答
1

ByteArrayInputStream bais = new ByteArrayInputStream(EntityUtils.toByteArray(entity));

使用EntityUtils您可以将实体转换为字节数组,然后创建ByteArrayInputStream继承InputStream

于 2013-08-06T20:06:39.753 回答
1

你可以不只是添加

InputStream inputStream = entity.getContent();

你有什么?

于 2013-08-06T20:06:57.927 回答