C# 解析URL的优雅方式
在POST/GET请求之后,我得到了需要解析的URL,当然我可以使用spit()来获取所需的信息,但这肯定是一种更优雅的方式。有什么想法吗C# 解析URL的优雅方式,c#,parsing,C#,Parsing,在POST/GET请求之后,我得到了需要解析的URL,当然我可以使用spit()来获取所需的信息,但这肯定是一种更优雅的方式。有什么想法吗 http://api.vkontakte.ru/blank.html#access_token=8860213c0a392ba0971fb35bdfb0z605d459a9dcf9d2208ab60e714c3367681c6d091aa12a3fdd31a4872&expires_in=86400&user_id=34558123 我正在使用类解析:访问令
http://api.vkontakte.ru/blank.html#access_token=8860213c0a392ba0971fb35bdfb0z605d459a9dcf9d2208ab60e714c3367681c6d091aa12a3fdd31a4872&expires_in=86400&user_id=34558123
我正在使用类解析:访问令牌
和过期
,您可以执行以下操作:
var url = new Uri("your url");
使用Uri+ParseQueryString函数:
Uri myUri = new Uri("http://api.vkontakte.ru/blank.html#access_token=8860213c0a392ba0971fb35bdfb0z605d459a9dcf9d2208ab60e714c3367681c6d091aa12a3fdd31a4872&expires_in=86400&user_id=34558123");
String access_token = HttpUtility.ParseQueryString(myUri.Query).Get("access_token");
String expires_in = HttpUtility.ParseQueryString(myUri.Query).Get("expires_in");
这也会起作用
String access_token = HttpUtility.ParseQueryString(myUri.Query).Get(0);
资料来源:
提示:你可能需要
using System.Web;
并添加对System.Web的引用有几种方法可以做到这一点。一个是,您可以简单地使用该方法获取查询字符串,然后通过&s进行解析。另一个是,您可以使用该方法,然后使用将查询字符串解析为,这可能是您首选的路由 参见下面的示例:
using System.Web; // For HttpUtility
// The original URL:
Uri unparsedUrl = new Uri("http://api.vkontakte.ru/blank.html#access_token=8860213c0a392ba0971fb35bdfb0z605d459a9dcf9d2208ab60e714c3367681c6d091aa12a3fdd31a4872&expires_in=86400&user_id=34558123");
// Grabs the query string from the URL:
string query = unparsedUrl.Query;
// Parses the query string as a NameValueCollection:
var queryParams = HttpUtility.ParseQueryString(query);
您现在可以执行类似于处理字典
对象的操作。像这样:
string accessToken = queryParams["access_token"];
string expiresIn = queryParams["expires_in"];
这与@Jeroen Bouman展示的功能相同,但将不同的功能分开,这样您就可以了解每件作品各自的功能
参考文献:
using System.Web; // For HttpUtility
// The original URL:
Uri unparsedUrl = new Uri("http://api.vkontakte.ru/blank.html#access_token=8860213c0a392ba0971fb35bdfb0z605d459a9dcf9d2208ab60e714c3367681c6d091aa12a3fdd31a4872&expires_in=86400&user_id=34558123");
// Grabs the query string from the URL:
string query = unparsedUrl.Query;
// Parses the query string as a NameValueCollection:
var queryParams = HttpUtility.ParseQueryString(query);
Uri类?hm.的可能副本。。我查看了URI类,但不知道如何使用它来解析PAR参数。任何示例?uri.Query.Split('&')都应该为您提供所有查询字符串参数,此时您可以按“=”进行拆分以将值与名称分开。您没有回答他的问题,他想要
访问令牌,并且在uri中过期。Query
单独保存查询参数Uri.PathAndQuery
通过?
分隔路径和查询参数。显然,Uri.Path
会保留路径,如果您希望这些变量是独立的。您还可以使用Uri.TryCreate
更优雅地处理提供的字符串不是有效Uri的情况。