48

POST/GET リクエストの後、解析が必要な URL が返されます。もちろん、spit() を使用して必要な情報を取得することもできますが、より洗練された方法であることは確かです。何か案は?

http://api.vkontakte.ru/blank.html#access_token=8860213c0a392ba0971fb35bdfb0z605d459a9dcf9d2208ab60e714c3367681c6d091aa12a3fdd31a4872&expires_in=86400&user_id=34558123

私は以下を解析しています:access tokenおよびexpires_in

4

3 に答える 3

60

URIクラスを使用すると、次のことができます。

var url = new Uri("your url");
于 2013-03-30T00:37:06.890 に答える
50

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 への参照を追加します。

于 2015-04-03T15:01:44.393 に答える
18

これを行うにはいくつかの方法があります。1 つは、単純にUri.Queryメソッドを使用してクエリ文字列を取得し、& で解析できることです。もう 1 つの方法は、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 が示したものと同じ機能を持っていますが、さまざまな機能を分割しているため、各部分が個別に何をするかを理解できます。

参考文献:

Uri.クエリ

HttpUtility.ParseQueryString

NameValueCollection

于 2016-03-15T16:09:41.640 に答える