2013-05-09 137 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