C# 端口号和URL';s
我们的应用程序向用户请求URL,但是URL可能包含.com或.com.uk(任何国家/地区名称)地址结束后的信息 例如,用户可以向我们提供地址C# 端口号和URL';s,c#,webclient,port,C#,Webclient,Port,我们的应用程序向用户请求URL,但是URL可能包含.com或.com.uk(任何国家/地区名称)地址结束后的信息 例如,用户可以向我们提供地址 www.example.com/sample/userbin?form=sl&t= 当然,上面的URL是虚构的,不会起作用,但它说明了我的观点 我们的应用程序还存储连接数据,使应用程序能够通过代理服务器等访问internet。它还允许用户指定端口号,但我们注意到WebClient不提供端口号的成员 唯一的另一种方法是将端口号附加到URL中,但当我们不知道
www.example.com/sample/userbin?form=sl&t= 当然,上面的URL是虚构的,不会起作用,但它说明了我的观点 我们的应用程序还存储连接数据,使应用程序能够通过代理服务器等访问internet。它还允许用户指定端口号,但我们注意到WebClient不提供端口号的成员
唯一的另一种方法是将端口号附加到URL中,但当我们不知道用户提供的URL时,如何才能做到这一点?我不知道这是否有帮助,但URL中的端口直接位于主机名之后,前面有冒号 示例:(www.Example.com,端口8080)
你为什么不知道域名?如果用户输入了有效的URL,它将匹配以下模式:
//<domain>/path/file/whatever
///path/file/which
或
/path/file/随便什么
添加端口:
<domain>:<port>/path/file/whatever
:/path/file/which
您可以按/或将其拆分?例如:
http://google.com|?search=cats
http://google.com|/mail
分裂在哪里。URL后面唯一可能的字符是/和?。因此,您可以执行以下操作:
http://google.com|/mail
拆分,然后在域后追加端口,然后在末尾追加额外端口,如下所示:
http://google.com:8080/mail
我想这就是你的意思。域名可以是任何东西。。。。因此,看起来我们需要做的就是从URL中删除域并附加端口。正确的方法是:根据*/(即:http://,https://,ftp://,等等)和下一个/。所以“/”或“?”是域后面唯一的字符?非常确定,除非它们已经提供了端口(您可以使用:)进行检查。我从未见过使用其他任何东西,但您可能希望检查rfc规范。
http://google.com|/mail
http://google.com:8080/mail