public static cape.URL forString(string str, bool normalizePath = false) { var v = new cape.URL(); v.parse(str, normalizePath); return(v); }
public static byte[] createOpenHandshakeHTTPRequest(cape.URL url, string key) { if (!(url != null && key != null)) { return(null); } var sb = new cape.StringBuilder(); sb.append("GET "); var path = url.toStringNohost(); if (cape.String.isEmpty(path)) { sb.append('/'); } else { if (cape.String.getIndexOf(path, '/') != 0) { sb.append('/'); } sb.append(path); } sb.append(" HTTP/1.1\r\n"); sb.append("Host: "); sb.append(url.getHost()); var port = url.getPort(); if (!(object.Equals(port, null))) { sb.append(':'); sb.append(port); } sb.append("\r\n"); sb.append("Upgrade: websocket\r\n"); sb.append("Connection: Upgrade\r\n"); sb.append("Sec-WebSocket-Key: "); sb.append(key); sb.append("\r\nSec-WebSocket-Version: 13\r\n\r\n"); return(cape.String.toUTF8Buffer(sb.toString())); }
public cape.URL dup() { var v = new cape.URL(); v.setScheme(scheme); v.setUsername(username); v.setPassword(password); v.setHost(host); v.setPort(port); v.setPath(path); v.setFragment(fragment); if (rawQueryParameters != null) { v.setRawQueryParameters(rawQueryParameters.dup()); } if (queryParameters != null) { v.setQueryParameters(cape.Map.dup(queryParameters)); } return(v); }