2010-02-07 132 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