下面列出了javax.servlet.http.HttpServletRequest#upgrade() 实例代码,或者点击链接到github查看源代码,也可以在右侧发表评论。
@Override
protected void handleSuccess(HttpServletRequest request, HttpServletResponse response,
UpgradeInfo upgradeInfo, TyrusUpgradeResponse upgradeResponse) throws IOException, ServletException {
TyrusHttpUpgradeHandler handler = request.upgrade(TyrusHttpUpgradeHandler.class);
Writer servletWriter = newServletWriter(handler);
handler.preInit(upgradeInfo, servletWriter, request.getUserPrincipal() != null);
response.setStatus(upgradeResponse.getStatus());
upgradeResponse.getHeaders().forEach((key, value) -> response.addHeader(key, Utils.getHeaderFromList(value)));
response.flushBuffer();
}
@Override
protected void handleSuccess(HttpServletRequest request, HttpServletResponse response,
UpgradeInfo upgradeInfo, TyrusUpgradeResponse upgradeResponse) throws IOException, ServletException {
TyrusHttpUpgradeHandler handler = request.upgrade(TyrusHttpUpgradeHandler.class);
Writer servletWriter = newServletWriter(handler);
handler.preInit(upgradeInfo, servletWriter, request.getUserPrincipal() != null);
response.setStatus(upgradeResponse.getStatus());
upgradeResponse.getHeaders().forEach((key, value) -> response.addHeader(key, Utils.getHeaderFromList(value)));
response.flushBuffer();
}
@Override
protected void handleSuccess(HttpServletRequest request, HttpServletResponse response,
UpgradeInfo upgradeInfo, TyrusUpgradeResponse upgradeResponse) throws IOException, ServletException {
TyrusHttpUpgradeHandler handler = request.upgrade(TyrusHttpUpgradeHandler.class);
Writer servletWriter = servletWriterHelper.newInstance(handler);
handler.preInit(upgradeInfo, servletWriter, request.getUserPrincipal() != null);
response.setStatus(upgradeResponse.getStatus());
for (Map.Entry<String, List<String>> entry : upgradeResponse.getHeaders().entrySet()) {
response.addHeader(entry.getKey(), Utils.getHeaderFromList(entry.getValue()));
}
response.flushBuffer();
}
private void doUpgrade(String id, HttpServletRequest request, HttpServletResponse response) throws Exception {
// currently we not support tcp upgrade (but websockets doing in WsProxy)
// we can send error for docker clients (it accept only 400, 404 & 500 codes),
// but sending 500 does not interrupt docker client, and its hangs
request.upgrade(ImmediateCloseConnection.class);
log.debug("{}: close upgraded connection", id);
}
@Override
protected void doPost(final HttpServletRequest req, final HttpServletResponse res) throws ServletException, IOException {
if (Log.doTrace()) {
Log.trace("PingUpgradeServlet:doPost");
}
if ("echo".equals(req.getHeader("Upgrade"))) {
if (Log.doTrace()) {
Log.trace("PingUpgradeServlet:doPost -- found echo, doing upgrade");
}
res.setStatus(101);
res.setHeader("Upgrade", "echo");
res.setHeader("Connection", "Upgrade");
req.upgrade(Handler.class);
} else {
if (Log.doTrace()) {
Log.trace("PingUpgradeServlet:doPost -- did not find echo, no upgrade");
}
res.getWriter().println("No upgrade: " + req.getHeader("Upgrade"));
}
}
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
req.upgrade(upgradeHandlerClass);
}
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
req.upgrade(upgradeHandlerClass);
}
@Override
protected void doGet(final HttpServletRequest req, final HttpServletResponse resp) throws ServletException, IOException {
req.upgrade(Handler.class);
}
@Override
protected void doGet(final HttpServletRequest req, final HttpServletResponse resp) throws ServletException, IOException {
req.upgrade(Handler.class);
}