小编ret*_*dos的帖子

使用 Apache HttpClient 下载文件

我想做的是使用 httpclient 下载文件。目前我的代码如下。

    HttpClient client = HttpClientBuilder.create().build();
    HttpGet request = new HttpGet(downloadURL);     


    HttpResponse response = client.execute(request);

    HttpEntity entity = response.getEntity();
    if (entity != null) {
        FileOutputStream fos = new FileOutputStream("C:\\file");
        entity.writeTo(fos);
        fos.close();
    }
Run Code Online (Sandbox Code Playgroud)

我的下载网址是这样的:http://example.com/file/afz938f348dfa3

正如您所看到的,该文件没有扩展名(至少在网址中),但是,当我使用普通浏览器访问该网址时,它确实会下载文件“asdasdaasda.txt”或“asdasdasdsd.pdf”(名称与网址不同,扩展名并不总是相同,取决​​于我尝试下载的内容)。

我的 http 响应如下所示:

日期:2017 年 5 月 29 日星期一 14:57:14 GMT 服务器:Apache/2.4.10 内容处置:附件;filename="149606814324_testfile.txt" 接受范围:字节 缓存控制:public,max-age=0 最后修改时间:2017 年 5 月 29 日星期一 14:29:06 GMT Etag:W/"ead-15c549c4678-gzip" 内容-类型:文本/纯文本;字符集 = UTF-8 变化:接受编码 内容编码:gzip 内容长度:2554 保持活动:超时 = 5,最大 = 100 连接:保持活动

我怎样才能让我的java代码自动下载具有良好名称和扩展名的文件到特定文件夹中?

java apache download httpclient

3
推荐指数
2
解决办法
1万
查看次数

在 Java 中格式化 XMLGregorianCalendar

我有一个看起来像这样的日期字符串。

2017-12-06T17:39:00Z

我想要做的是将此字符串转换为 XMLGregorianCalendar 但使用相同的格式。

我现在做的是:

String choosenDate = 2017-12-06T17:39:00Z;

GregorianCalendar c = new GregorianCalendar();

DateTimeFormatter timeFormatter = DateTimeFormatter.ISO_DATE_TIME;
TemporalAccessor accessor = timeFormatter.parse(dateChoisie);

Date date = Date.from(Instant.from(accessor));
c.setTime(date);
System.err.println("choosenDate: " + dateChoisie);
System.err.println("date : " + date);
XMLGregorianCalendar dateXMLGreg = null;
try
{
    dateXMLGreg = DatatypeFactory.newInstance().newXMLGregorianCalendar(c);
    System.err.println("dateXMLGreg: " + dateXMLGreg);
}
catch (DatatypeConfigurationException e)
{
    messages.addMessage(new MessageBuilder().error().code("webservice.failure").build());
}
Run Code Online (Sandbox Code Playgroud)

这给了我以下输出:

10:47:45,957 错误 [stderr](默认任务 47)选择日期:2017-12-06T17:39:03Z

10:47:45,957 错误 [stderr](默认任务 47)日期:2017 年 12 月 6 日星期三 18:39:03 CET

10:47:45,958 错误 [stderr](默认任务 47) dateXMLGreg:2017-12-06T18:39:03.000+01:00

那么我该怎么做才能让我的 …

java date xmlgregoriancalendar

2
推荐指数
1
解决办法
3711
查看次数

标签 统计

java ×2

apache ×1

date ×1

download ×1

httpclient ×1

xmlgregoriancalendar ×1