我问了一个问题以获取 URL 作为操作输入。现在我有一个新问题。传递给操作的 URL 从http://example.com
变为http:/example.com
。
我想知道为什么以及如何解决这个问题。
PS:我添加了这段代码来解决,但我认为将来可能会有另一个问题!代码是:
if ((url.Contains(":/")) && !(url.Contains("://")))
{
url = url.Replace(":/", "://");
}
我问了一个问题以获取 URL 作为操作输入。现在我有一个新问题。传递给操作的 URL 从http://example.com
变为http:/example.com
。
我想知道为什么以及如何解决这个问题。
PS:我添加了这段代码来解决,但我认为将来可能会有另一个问题!代码是:
if ((url.Contains(":/")) && !(url.Contains("://")))
{
url = url.Replace(":/", "://");
}
使用正则表达式:
string src = @"http://example.com";
string result = Regex.Replace(src, @"(?<=https?:/)/", "");
如果您需要还原:
string src = @"http:/example.com";
string result = Regex.Replace(src, @"(?<=https?:)/(?=[^/])", @"//");
浏览器(或服务器)正在用单斜杠替换双斜杠(非法)。
尝试一下,
http://stackoverflow.com/questions/11853025//input-url-like-http-site-com-changes-to-http-site-com-in-action-input
(在 Chrome 中)转到:
http://stackoverflow.com/questions/11853025/input-url-like-http-site-com-changes-to-http-site-com-in-action-input
如果我是你,我会从你的路径中删除 http:// 并稍后添加它。
http://localhost:1619/Utility/PR/example.com/
然后,url = "http://" + url;
如果您可能获得安全网址,请将其添加到路由/http/example.com
或/https/example.com