Ответ 1
Используя класс URI, вы можете сделать это:
var url = new Uri('your url');
После запроса POST/GET я получаю такой URL-адрес, который мне нужно проанализировать, конечно, я могу пойти и использовать spit() для получения требуемой информации, но наверняка должен быть более элегантный способ сделать это. Любые идеи?
http://api.vkontakte.ru/blank.html#access_token=8860213c0a392ba0971fb35bdfb0z605d459a9dcf9d2208ab60e714c3367681c6d091aa12a3fdd31a4872&expires_in=86400&user_id=34558123
Я анализирую для: access token
и expires_in
Используя класс URI, вы можете сделать это:
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);
Источник: https://msdn.microsoft.com/en-us/library/ms150046.aspx
Совет. Возможно, вам понадобится
using System.Web;
И добавьте ссылку на System.Web
Есть несколько способов сделать это. Во-первых, вы можете просто использовать метод Uri.Query
, чтобы получить строку запроса, а затем проанализировать с помощью & s. Другое дело, что вы можете использовать метод Uri.Query
, а затем используйте HttpUtility.ParseQueryString
, чтобы проанализировать строку запроса как NameValueCollection
, которая может быть вашим предпочтительным маршрутом.
См. пример ниже:
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);
Теперь вы можете выполнять операции, аналогичные тому, как вы будете иметь дело с объектом Dictionary
. Например:
string accessToken = queryParams["access_token"];
string expiresIn = queryParams["expires_in"];
Эта функция имеет ту же функциональность, что и @Jeroen Bouman, но разделяет разные функции, чтобы вы могли понять, что каждая штука делает индивидуально.
Литература: