- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我正在使用我的服务器分发一些文件(在 zip 中),但是,我希望用户在能够下载文件之前输入验证码。
这带来了一个新问题,因为代码:
private void sendFileResponse(final String filename, byte[] response, HttpExchange httpExchange) {
//<editor-fold defaultstate="collapsed" desc="code">
if (response != null && response.length > 0 && httpExchange != null) {
try {
httpExchange.setAttribute(HTTPExchange.HeaderFields.Content_Type.toString(), "application/zip");
OutputStream outputStream = httpExchange.getResponseBody();
httpExchange.sendResponseHeaders(200, response.length);
outputStream.write(response);
outputStream.flush();
outputStream.close();
httpExchange.getRequestBody().close();
} catch (Exception e) {
System.out.println(Misc.getStackTrace(e));
}
}
//</editor-fold>
}
... 将导致文件被命名为下载请求网页的 URL。例如,如果用户输入正确的验证码并在/download.html 下载文件,他们收到的文件将是 download.html,而不是我的文件名。
如何让服务器将文件作为文件名发送,并使网页同时刷新?
最佳答案
使用 Content-Disposition HTTP header 字段:
Content-Disposition:附件;文件名=你的文件名
httpExchange.getResponseHeaders().add("Content-Disposition", "attachment; filename=" + filename);
关于java - HttpExchange 发送文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25535254/
我正在使用我的服务器分发一些文件(在 zip 中),但是,我希望用户在能够下载文件之前输入验证码。 这带来了一个新问题,因为代码: private void sendFileResponse(
我正在创建在 Java HttpServer 类上运行的服务器,一切正常,但我注意到调用 exchange.getRemoteAddress().getAddress().getCanonicalHo
我创建了一个基于 com.sun.net.httpserver.HttpExchange 的 HttpServer。在我的处理程序中,com.sun.net.httpserver.HttpHandle
我正在开发一个示例 java http 服务器和一个 .Net 客户端(在平板电脑上)。使用我的 http 服务器,.Net 客户端必须能够下载文件。 它工作得很好,但现在我必须能够在连接中断后恢复下
我正在尝试修改一些使用 httpExchange 对象来处理服务器对客户端的响应的服务器代码。 我的问题是,对于包含 iso-8859-1 不支持的字符(例如汉字)的响应,我会得到类似于“????”的
我正在尝试通过 jetty 文档中的此链接实现“异步交换”下的代码: http://wiki.eclipse.org/Jetty/Tutorial/HttpClient#Asynchronous_Ex
这似乎是一个如此常见的用例,应该有一个简单的解决方案,但我看到的每一处都充满了极其臃肿的例子。 假设我有一个如下所示的表单: 我提交它并在服务器上想要获取输入值: 在服务器上,
原始 URI 是(比方说):http://xx.xx.xxx.xx:8000/mypath?parm1=1&parm2=he getRequestURI 返回:http://xx.xx.xxx.xx:
首先一些(非常基本的)示例代码来说明我的问题: final java.util.concurrent.atomic.AtomicLong previousId = new java.util.conc
我正在尝试用 Java 创建一个简单的 HttpServer 来处理 GET 请求,但是当我尝试获取请求的 GET 参数时,我注意到 HttpExchange 类没有相应的方法。 有人知道读取 GET
我有两个从客户端到服务器的 HttpURLConnections。这不是典型的 HttpServer,我正在对客户端和服务器进行编码,但只能使用端口 80/443(用于测试任何端口是否有效)。第一个请
我是一名优秀的程序员,十分优秀!