【发布时间】:2013-04-15 21:24:17
【问题描述】:
我正在创建一个 Jetty 客户端,它将 POST 文件发送到 Jetty 服务器。我正在尝试使用ContentExchange.setFileForUpload(),但我无法在网上找到任何关于如何正确使用此 API 的示例代码。
【问题讨论】:
标签: jetty
我正在创建一个 Jetty 客户端,它将 POST 文件发送到 Jetty 服务器。我正在尝试使用ContentExchange.setFileForUpload(),但我无法在网上找到任何关于如何正确使用此 API 的示例代码。
【问题讨论】:
标签: jetty
API 不言自明,只需传入您要上传的文件即可;其余的只是基本的 HTTP:
HttpClient httpClient = ...;
File file = ...;
ContentExchange exchange = new ContentExchange(true);
exchange.setURL("http://host/path");
exchange.setMethod(HttpMethods.POST);
exchange.setFileForUpload(file);
exchange.setRequestHeader("Content-Type", "application/octet-stream");
exchange.setRequestHeader("Content-Length", String.valueOf(file.length()));
httpClient.send(exchange);
// Wait for the upload to complete
exchange.waitForDone();
如果您想更好地控制文件上传将经历的 HTTP 阶段,请查看HttpClient documentation,或者最好切换到Jetty 9's HttpClient,这是vastly improved 实现。
【讨论】: