2010-02-07 150 views
3

我們的應用程序請求來自用戶的URL,但URL可能包含.com或.com.uk(任何國家/地區名稱)地址結尾後的信息。端口號和URL的

例如用戶可以向我們提供地址;
www.example.com/sample/userbin?form=sl & T =

當然上面的網址是由並不會工作,但它說明了我的觀點。

我們的應用程序還存儲連接數據以使應用程序能夠通過代理服務器等訪問互聯網。它還允許用戶指定端口號,但我們注意到WebClient不提供端口號的成員。

唯一的另一種方式是將端口號添加到URL,但是如果我們不知道用戶提供的URL,我們該怎麼做?

回答

3

爲什麼你不知道的領域?如果用戶輸入一個有效的URL匹配它像一個模式:

//<domain>/path/file/whatever 

<domain>/path/file/whatever 

添加端口:

<domain>:<port>/path/file/whatever 
+0

這個域可能是任何東西....所以它看起來像我們所需要做的就是從URL中刪除域並追加端口。 – Trent 2010-02-07 02:02:41

+0

正確解析基於以* /開頭的域(即:http://,https://,ftp://等)和下一個/。 – 2010-02-07 02:07:50

2

我不知道這是否會對您有所幫助,但URL中的端口緊跟在主機名之後,前面是冒號。

例子:(www.example.com端口8080)

http://www.example.com:8080/ 
0

你可以通過/或分割它呢?例如:

http://google.com|?search=cats 
http://google.com|/mail 

Where |是分裂。在URL之後唯一可能的字符是/和?。所以,你可以做到以下幾點:

http://google.com|/mail 

分裂,然後附加端口域後,然後在最後追加額外的,就像這樣:

http://google.com:8080/mail 

我覺得這是你的意思。

+0

所以「/」或「?」是域名後唯一會出現的字符嗎? – Trent 2010-02-07 02:03:17

+0

很確定,除非他們已經提供了一個端口(你可以檢查:)。我從來沒有見過其他用途,但你可能想檢查rfc規範。 – sam 2010-02-07 02:28:00