求教下授权成功以后,怎么获取网页返回的access_token

laidanchao 2015-03-25 01:57:39
进入授权,允许后在页面返回一个json数据段,已经显示在这个页面上,请问我要怎么获得这个数据呢,写入后台。
request 也收不到


{"access_token":"ACCESS_TOKEN","expires_in":7200}
我有这个了 但接下来这个要怎么获取到后台
...全文
1105 10 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
你说的微信哇。。。。 你向微信的token获取接口发起请求后,如果格式正确,微信会返回给你一个json字符串,你自己把这个字符串里的token值解析出来呗。。。 搜httpclient直接发一个请求
程序猿老曾 2015-03-26
  • 打赏
  • 举报
回复
学习一下
myhope88 2015-03-26
  • 打赏
  • 举报
回复
没遇到过,帮顶下
laidanchao 2015-03-26
  • 打赏
  • 举报
回复
谢谢各位的帮助,我就不统一回复啦。我有朋友发我代码解决了!虽然看不懂什么意思,不过算是解决了,我拿出来分享下。 上面8楼那一段是错的。。


string[] ss = GetAccess_tokenAndOpenid(appid, appsecret, code);
string access_token = ss[0];
 
private string[] GetAccess_tokenAndOpenid(string appid, string appsecret, string code)
        {
            string url = string.Format("https://api.weixin.qq.com/sns/oauth2/access_token?appid={0}&secret={1}&code={2}&grant_type=authorization_code", appid, appsecret, code);
            HttpWebRequest httpWebRequest = (HttpWebRequest)WebRequest.Create(url);
            httpWebRequest.Method = "GET";
            HttpWebResponse httpWebResponse = (HttpWebResponse)httpWebRequest.GetResponse();
            StreamReader streamReader = new StreamReader(httpWebResponse.GetResponseStream(), Encoding.Default);
            string jsonText = streamReader.ReadToEnd();
            return GetAccess_tokenAndOpenid(jsonText);
        }
 private string[] GetAccess_tokenAndOpenid(string jsonText)
        {
            if (jsonText.Contains("errcode"))
            {
                return null;
            }
 
            string[] ss = new string[2];
 
            JsonReader jsonReader = new JsonTextReader(new StringReader(jsonText));
            string a = "";
            while (jsonReader.Read())
            {
                if (jsonReader.TokenType.ToString() == "PropertyName")
                {
                    a = jsonReader.Value.ToString();
                }
                else
                {
                    if (jsonReader.TokenType.ToString() == "StartObject")
                    {
                        a = "";
                    }
                    else
                    {
                        if (jsonReader.TokenType.ToString() == "EndObject")
                        {
                            a = "";
                        }
                        else
                        {
                            if (a == "access_token")
                            {
                                ss[0] = jsonReader.Value.ToString();
                            }
                            else if (a == "openid")
                            {
                                ss[1] = jsonReader.Value.ToString();
                            }
                        }
                    }
                }
            }
            jsonReader.Close();
            return ss;
        }
laidanchao 2015-03-26
  • 打赏
  • 举报
回复
谢谢各位的帮助,我就不统一回复啦。我有朋友发我代码解决了!虽然看不懂什么意思,不过算是解决了,我拿出来分享下。
   
string[] ss = GetAccess_tokenAndOpenid(appid, appsecret, code);
 string access_token = ss[0];

private string[] GetAccess_tokenAndOpenid(string appid, string appsecret, string code)
        {
            string url = string.Format("https://api.weixin.qq.com/sns/oauth2/access_token?appid={0}&secret={1}&code={2}&grant_type=authorization_code", appid, appsecret, code);
            HttpWebRequest httpWebRequest = (HttpWebRequest)WebRequest.Create(url);
            httpWebRequest.Method = "GET";
            HttpWebResponse httpWebResponse = (HttpWebResponse)httpWebRequest.GetResponse();
            StreamReader streamReader = new StreamReader(httpWebResponse.GetResponseStream(), Encoding.Default);
            string jsonText = streamReader.ReadToEnd();
            return GetAccess_tokenAndOpenid(jsonText);
        }
 private string[] GetAccess_tokenAndOpenid(string jsonText)
        {
            if (jsonText.Contains("errcode"))
            {
                return null;
            }

            string[] ss = new string[2];

            JsonReader jsonReader = new JsonTextReader(new StringReader(jsonText));
            string a = "";
            while (jsonReader.Read())
            {
                if (jsonReader.TokenType.ToString() == "PropertyName")
                {
                    a = jsonReader.Value.ToString();
                }
                else
                {
                    if (jsonReader.TokenType.ToString() == "StartObject")
                    {
                        a = "";
                    }
                    else
                    {
                        if (jsonReader.TokenType.ToString() == "EndObject")
                        {
                            a = "";
                        }
                        else
                        {
                            if (a == "access_token")
                            {
                                ss[0] = jsonReader.Value.ToString();
                            }
                            else if (a == "openid")
                            {
                                ss[1] = jsonReader.Value.ToString();
                            }
                        }
                    }
                }
            }
            jsonReader.Close();
            return ss;
        }
BillHu233 2015-03-25
  • 打赏
  • 举报
回复
引用 2 楼 laidanchao 的回复:
[quote=引用 1 楼 q375938192 的回复:] 把这个json传到后台代码咯,如果是MVC可以传到控制器,如果是aspx页面,可以在aspx.cs后台方法,或者用ajax传值过去咯
就是不知道怎么把这个json传到后台。。ajax的话也得先拿的到这个数据。。[/quote] 你的意思是一个web页面或者说一个html页面上显示出来{"access_token":"ACCESS_TOKEN","expires_in":7200}这样子的么, 这样的话你可以试着把整个页面从body开始转成一个documentHtml节点,然后获取InnerHtml,应该可以获取到这个吧....好吧,需求不是特别明确.
  • 打赏
  • 举报
回复
定义一个类接收,你这个应该不会有前台介入吧?直接就应该是后台
  • 打赏
  • 举报
回复
这个应该是微信平台获取授权的接口返回的数据 无论你怎样调用的微信的api,其实你都可以再后台直接发起请求,得到返回数据,而不需再前台通过JS+AJAX来得到 另外,微信的api中应该有建议类似的操作,比如得到授权,比如微信支付 等等 都建议直接放在服务器后台处理,毕竟有些授权,可能需要用到微信的公共号信息等,放在前台 不怎么安全
laidanchao 2015-03-25
  • 打赏
  • 举报
回复
引用 1 楼 q375938192 的回复:
把这个json传到后台代码咯,如果是MVC可以传到控制器,如果是aspx页面,可以在aspx.cs后台方法,或者用ajax传值过去咯
就是不知道怎么把这个json传到后台。。ajax的话也得先拿的到这个数据。。
BillHu233 2015-03-25
  • 打赏
  • 举报
回复
把这个json传到后台代码咯,如果是MVC可以传到控制器,如果是aspx页面,可以在aspx.cs后台方法,或者用ajax传值过去咯

62,243

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧