zjyuan1100 2015-01-28 07:55 采纳率: 36.4%
浏览 11764
已采纳

.net 微信开发网页授权回调如何获取openid

已经获得code现在要访问
https://api.weixin.qq.com/sns/oauth2/access_token?appid=APPID&secret=SECRET&code=CODE&grant_type=authorization_code”
返回的JSON数据包如下:

{
"access_token":"ACCESS_TOKEN",
"expires_in":7200,
"refresh_token":"REFRESH_TOKEN",
"openid":"OPENID",
"scope":"SCOPE"
}

现在要获取openid,怎么在后台访问这个链接回调后处理json数据,然后筛选出openid,直接赋给变量。
最终目的:string openid=回调后处理筛选好的openid。

  • 写回答

3条回答 默认 最新

  • Go 旅城通票 2015-01-28 08:27
    关注

    HttpWebRequest请求那个地址获取返回的json数据然后前后截取或者建立json对应的类,用Newtonsoft.Json.Net20.dll序列化为你的类就可以访问了。

     using System;
    using System.Web;
    using System.Net;
    using System.IO;
    using System.Text;
    public class HttpSend
    {
         /// <summary>
        /// GET下载页面内容
        /// </summary>
        /// <param name="url">请求的地址</param>
        /// <param name="encoding">内容编码</param>
        /// <returns></returns>
        public static string GetPageContent(string url, Encoding encoding)
        {
            string html=null;
            try
            {
                HttpWebRequest request = (HttpWebRequest)HttpWebRequest.Create(url);
                request.Method = "GET";
    
                HttpWebResponse response = request.GetResponse() as HttpWebResponse;
                Stream ioStream = response.GetResponseStream();
                StreamReader sr = new StreamReader(ioStream, encoding);
                html = sr.ReadToEnd();
                sr.Close();
                ioStream.Close();
                response.Close();
            }
            catch (Exception ex) {  }
            return html;
        }
    }
    
    
    //使用
    string html=HttpSend.GetPageContent("你的qq oauth地址",Encoding.UTF8);
    string key = "\"openid\":\"";
            int startIndex = html.IndexOf(key);
            if (startIndex != -1)
            {
                int endIndex = html.IndexOf("\",", startIndex);
                string openid = html.Substring(startIndex + key.Length, endIndex - startIndex - key.Length);
                Response.Write(openid);
            }
            else
            {//找不到openid,出错了。。
            }
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

悬赏问题

  • ¥30 微博热门内容爬虫报错
  • ¥15 selenium获取非固定位置的元素
  • ¥50 手写签名不能上传的问题
  • ¥30 linux odbc怎么添加gbase数据库
  • ¥20 电脑开机黑屏,只有一个鼠标,联想zj者y7000
  • ¥20 DXSDK_jun10
  • ¥20 请问这种量表怎么用spss量化分析(作为中介模型的因变量
  • ¥55 AD844 howland电流源如何驱动大额负载
  • ¥15 C++ /QT 内存权限的判断函数列举
  • ¥15 深度学习GFnet理解问题