【发布时间】:2014-03-11 10:56:42
【问题描述】:
我正在尝试在 GWT 中使用 RequestBuilder 来查看是否支持 Accept-Ranges。 以下是我的客户端代码:
RequestBuilder builder = new RequestBuilder(RequestBuilder.GET,pathToServlet);
builder.setHeader("Range","bytes=0-10");
RequestCallback callback = new RequestCallback() {
@Override
public void onError(Request arg0, Throwable arg1) {
}
@Override
public void onResponseReceived(Request req, Response res) {
log.info("Text:"+res.getText());
log.info("Code:"+res.getStatusCode());
}
};
try {
builder.sendRequest(null, callback);
} catch (RequestException e) {}
而我的 servlet 代码只是一个简单的测试代码:
public class RangeTest extends HttpServlet{
static Logger log = Logger.getLogger(RangeTest.class);
@Override
public void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException {
String output = new String("This is a test string to be sent to the client");
response.setContentType("text/xml");
PrintWriter out = response.getWriter();
out.println(output);
}
}
在客户端的输出中,打印了以下内容:
Text:This is a test string to be sent to the client
Code:200
我的预期是,由于我在请求中将范围标头设置为 0-10,因此只会将前 10 个字节发送到客户端。但是这里整个字符串都被发送了。我在这里做错了什么?我有什么遗漏的吗?
【问题讨论】:
-
你是对的。我通读了 DefaultServlet 源代码,发现我必须自己评估它。但是,如果没有自动处理并且我必须编写代码来处理它,那么提供这样一个标题的目的是什么?
标签: java servlets gwt http-headers