我有一个使用帖子评论的应用程序。安全不是问题。 string url = http://example.com/xyz/xyz.html?userid=xyz&comment=Comment
我想要的是从上面的字符串中提取用户标识和评论。
我尝试过发现我可以使用IndexOf
和Substring
来获取所需的代码但是如果用户标识或注释也有=符号和&符号然后我的IndexOf
将返回号码,我的Substring
将会出错。
你能找到一个更合适的方法来提取用户ID和评论。
感谢。
答案 0 :(得分:5)
我使用字符串url =获取了url HttpContext.Current.Request.Url.AbsoluteUri;
不要使用AbsoluteUri
属性,它会为您提供string
Uri,而是直接使用Url
属性,如:
var result = System.Web.HttpUtility.ParseQueryString(HttpContext.Current.Request.Url.Query);
然后你可以提取每个参数,如:
Console.WriteLine(result["userid"]);
Console.WriteLine(result["comment"]);
对于有string
uri的其他情况,请不要使用字符串操作,而是使用Uri
类。
Uri uri = new Uri(@"http://example.com/xyz/xyz.html?userid=xyz&comment=Comment");
您还可以使用TryCreate
方法,在Uri无效的情况下不会抛出异常。
Uri uri;
if (!Uri.TryCreate(@"http://example.com/xyz/xyz.html?userid=xyz&comment=Comment", UriKind.RelativeOrAbsolute, out uri))
{
//Invalid Uri
}
然后您可以使用System.Web.HttpUtility.ParseQueryString
来获取查询字符串参数:
var result = System.Web.HttpUtility.ParseQueryString(uri.Query);
答案 1 :(得分:0)
最丑陋的方式如下:
String url = "http://example.com/xyz/xyz.html?userid=xyz&comment=Comment";
usr = url.Split('?')[1];
usr= usr.Split('&')[0];
usr = usr.Split('=')[1];
但@habib版本更好