如何从服务器请求中获取文件名?

时间:2015-04-14 08:20:22

标签: java httprequest server

我正在尝试http请求并向服务器创建http get请求。服务器必须返回.zip文件。这是代码:

        url = new URL(urlToRead);
        conn = (HttpURLConnection) url.openConnection();
        conn.setRequestMethod("GET");
        is = conn.getInputStream();

然后我想把它写成这样的文件:

    r = 1;
    while(r > 0){
     r = is.read(buf);
     if(r > 0)
    fos.write(buf, 0, r);
   }

但要创建fileoutputstream我想使用服务器提供的文件名。我发现服务器答案有文件名,所有结构都是这样的:

HTTP/1.1 200 OK
Date: Mon, 07 Apr 2003 14:51:19 GMT
Server: Apache/1.3.20 (Win32) PHP/4.3.0
Last-Modified: Mon, 07 Apr 2003 14:51:00 GMT
Accept-Ranges: bytes
Content-Length: 673
Keep-Alive: timeout=15, max=100
Connection: Keep-Alive
Content-Type: application/zip
Content-Disposition: attachment; filename=test.zip
Pragma: no-cache

....(zip content)

如何获取文件名?

3 个答案:

答案 0 :(得分:2)

您可以使用HttpUrlConnection对象的getHeaderField()方法来阅读Content-Disposition标头。还要确保在不存在的情况下处理。

答案 1 :(得分:1)

您是否看过HttpURLConnection提供的方法?

尤其涉及headers

答案 2 :(得分:0)

如果你有servletRequest对象(比如obj)那么 我认为这会有所帮助

obj.getRequestURL() ;