安静点DGC 2023-03-06 09:21 采纳率: 77.3%
浏览 39
已结题

微博API https://api.weibo.com/oauth2/access_token 报错

我调用微博api的获取access_token接口报错:
{"error":"invalid_grant","error_code":21325,"request":"/oauth2/access_token","error_uri":"/oauth2/access_token","error_description":"invalid authorization code:7abb88384ea0a118814aadde61bdcccb"}
调用方式是:
https://api.weibo.com/oauth2/access_token?client_id=%E8%87%AA%E5%B7%B1%E7%9A%84appkey&client_secret=%E8%87%AA%E5%B7%B1%E7%9A%84appsecret&grant_type=authorization_code&redirect_uri=%E5%9B%9E%E8%B0%83%E5%9C%B0%E5%9D%80&code=7abb88384ea0a118814aadde61bdcccb

这到底是为什么,是因为code值不能重复使用吗,还是其它原因,我这是在postman上面测试的,用HttpWebRequest结果是一直报400服务器错误,我c#是这样调用的(我看说明是要使用post,但是值是拼在url上的,body可以不传值,我用postman也是post调用,但是值直接拼在url上,没有写在body中,能调但是报上面错):



 public static string HttpPost(string Url, string postDataStr)
        { 
                int I = 0; 
                HttpWebRequest request = (HttpWebRequest)WebRequest.Create(Url);
                CookieContainer cookieCon = new CookieContainer(); 
                request.Method = "POST";
                request.Timeout = 50000;  
                request.CookieContainer = cookieCon;
                request.KeepAlive = true;
                request.ProtocolVersion = HttpVersion.Version10; 
                request.ServicePoint.Expect100Continue = false; 
                Stream myRequestStream = request.GetRequestStream();
                StreamWriter myStreamWriter = new StreamWriter(myRequestStream);
                myStreamWriter.Write(postDataStr);
                myStreamWriter.Close();
                string retString = null; 
                HttpWebResponse response = (HttpWebResponse)request.GetResponse();
                if (response != null)
                {
                    response.Cookies = cookieCon.GetCookies(response.ResponseUri);
                    Stream myResponseStream = response.GetResponseStream();
                    StreamReader myStreamReader = new StreamReader(myResponseStream, Encoding.GetEncoding("utf-8"));
                    retString = myStreamReader.ReadToEnd();
                    myStreamReader.Close();
                    myResponseStream.Close();
                    myResponseStream.Dispose(); 
                    myRequestStream.Close();
                    myRequestStream.Dispose();
                }

                return retString; 

        }

postDataStr值我照样也传了值

  • 写回答

3条回答 默认 最新

      报告相同问题?

      相关推荐 更多相似问题

      问题事件

      • 系统已结题 3月14日
      • 已采纳回答 3月6日
      • 创建了问题 3月6日

      悬赏问题

      • ¥15 mysql 视图里面如何写时间排序
      • ¥20 misc尽快完成,急! ! !
      • ¥15 protel99.SE提示一下弹窗
      • ¥15 银河麒麟v10 执行.run失败如何解决
      • ¥15 如何用Python打开LA文件
      • ¥15 用mysql做一个高校工资管理系统
      • ¥21 Multisim设计用三端集成稳压器设计稳压电路
      • ¥15 tp6,在iframe里的网址通过获取url参数失败
      • ¥15 打开opendaylight查看拓扑,为什么直接就显示了两个Switch,在mininet配置了一个topo,这两个Switch还在
      • ¥15 无法远程连接pgsql