我已将访问令牌作为来自 Oauth2.0 中服务器的响应,但我无法将其提取到我的代码中。任何人都可以帮我提供C#中的代码或者帮助我提供一些部分吗?
答案 0 :(得分:0)
var uri = new Uri("http://176.66.102.44:8088/#access_token=eHwAIJd%40bo657tdv8XSaS6hYU%40Ov/XiOWBlMdwo4/h63Q1E%40RcJukIbBnDU%40dh/AYJnEQc4/WmTrUCN3snAntvmchEpZ244LiSIexX/Xiw5jxhR0MkNcS0Y/4bx7Qq4Ws3Wmy3bhFbPSmZQh1KRINwOzY32d8Xz72LGwm8VwyFCn9U1Yo8ERan21EKDvcQpdR%40b4/bDm5eRwIbga0hm7Wog7LnDsQ/OggJqP9CMMkZbqMRN881H4sw0ebMfSZyZf448/HIX5Smfr1%409ofCPzQrZ5GpFVCsaftczTiN%40TnVRPsArbUeLDM2eIAXZyd/QbnBTU840UU3KJ0ohvlBvMi7mYgj0u76JTqRqvyjVnqdNQX6yEPu/6F6SUxEaGkcTRp4h9sVTRZ%40aEMMoQ/0p73GahSPB/G6wuJOfT5PBopnSBrspJq5CvCH2dnz5STkc4ZhpUjj2SLxBDxiJLVruNSbri3sY~&token_type=Bearer&expires_in=120");
var fragments = uri.Fragment.Split('&');
string accessToken = null;
if (fragments.Length > 0 && fragments[0].StartsWith("#access_token="))
{
accessToken = fragments[0].Remove(0, "#access_token=".Length);
}
if (accessToken != null)
{
// Do something with the token
}
这是如何工作的,我们将使用Uri
类为我们解析Url。
Uri
类属性Fragment
将检索#
之后的所有内容,如文档中所述。
我们将拆分&符号,因为我们只需要access_token
参数。我们不需要token_type
或expires_in
。我们会忽略这些。
最后一部分就是把多余的数据扔到字符串上,字符串是" #access_token ="所以我们在字符串上调用Remove
来做到这一点。这会向accessToken
返回一个新字符串,然后您可以使用数据执行任何操作。
另外,请记住,仅当access_token
是片段的第一部分时才有效。如果它不是,那么在您执行Split
后,您需要查看数组的哪个索引以"access_token="
开头