private void parseFirstLine(String[] responseLines, TyrusUpgradeResponse tyrusUpgradeResponse) throws ParseException { if (responseLines.length == 0) { throw new ParseException("Empty HTTP response"); } String firstLine = responseLines[0]; int versionEndIndex = firstLine.indexOf(' '); if (versionEndIndex == -1) { throw new ParseException("Unexpected format of the first line of a HTTP response: " + firstLine); } int statusCodeEndIndex = firstLine.indexOf(' ', versionEndIndex + 1); if (statusCodeEndIndex == -1) { throw new ParseException("Unexpected format of the first line of a HTTP response: " + firstLine); } String statusCode = firstLine.substring(versionEndIndex + 1, statusCodeEndIndex); String reasonPhrase = firstLine.substring(statusCodeEndIndex + 1); int status; try { status = Integer.parseInt(statusCode); } catch (Exception e) { throw new ParseException("Invalid format of status code: " + statusCode); } tyrusUpgradeResponse.setStatus(status); tyrusUpgradeResponse.setReasonPhrase(reasonPhrase); }
private static UpgradeResponse getUpgradeResponse(HttpResponsePacket httpResponsePacket) { TyrusUpgradeResponse tyrusUpgradeResponse = new TyrusUpgradeResponse(); for (String name : httpResponsePacket.getHeaders().names()) { for (String headerValue : httpResponsePacket.getHeaders().values(name)) { final List<String> values = tyrusUpgradeResponse.getHeaders().get(name); if (values == null) { tyrusUpgradeResponse.getHeaders().put(name, Utils.parseHeaderValue(headerValue.trim())); } else { values.addAll(Utils.parseHeaderValue(headerValue.trim())); } } } tyrusUpgradeResponse.setStatus(httpResponsePacket.getStatus()); return tyrusUpgradeResponse; }
private static UpgradeResponse getUpgradeResponse(HttpResponsePacket httpResponsePacket) { TyrusUpgradeResponse tyrusUpgradeResponse = new TyrusUpgradeResponse(); for (String name : httpResponsePacket.getHeaders().names()) { for (String headerValue : httpResponsePacket.getHeaders().values(name)) { final List<String> values = tyrusUpgradeResponse.getHeaders().get(name); if (values == null) { tyrusUpgradeResponse.getHeaders().put(name, Utils.parseHeaderValue(headerValue.trim())); } else { values.addAll(Utils.parseHeaderValue(headerValue.trim())); } } } tyrusUpgradeResponse.setStatus(httpResponsePacket.getStatus()); return tyrusUpgradeResponse; }