2013-05-09 138 views
0

java.net中有什么内置的解析HTTP请求的请求行吗?http header的解析请求行

例如:

CONNECT google.com:443 HTTP/1.1 

在这种情况下,我想解析hostport

回答

0

我使用

String request = "CONNECT google.com:443 HTTP/1.1"; 
String authority = request.split(" ")[0]; 
String[] tokens = request.split(":"); 
String host = tokens[0]; 
int port = (tokens.length == 2)? Integer.parseInt(tokens[1]) : 443; 
InetSocketAddress address = InetSocketAddress(host, port); 
0

您可以使用java.net.URL类的getHost()或getPort()或getDefaultPort()方法。

如需进一步信息,您可以检查here

+0

谢谢你穿上它自己。到底传递给构造函数的是什么? '新网址(“CONNECT google.com:443 HTTP/1.1”)'? – Razer 2013-05-09 17:19:02

+0

我不确定,因为我从来没有尝试过这种方式,但我不认为这会产生任何问题。如果您只需要主机名和端口新的URL(“google.com:443”),则可以通过这种方式执行此操作。有关更多实施信息,请参阅oracle文档[http://docs.oracle.com/javase/tutorial /networking/urls/urlInfo.html](here)。 – gusainhimanshu 2013-05-09 17:37:28