• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录

mhker

不要认为CPU运算速度快就 把所有的问题都推给它去做,程序员应该将代码优化再优化,我们自己能做的决不要让CPU做 ,因为CPU是为用户服务的,不是为我们程序员服务的!
  • 博客园
  • 联系
  • 订阅
  • 管理

公告

View Post

调用新浪接口记录

调用新浪接口几个大致步骤
首先必须有:
1.<!--微博的开放平台ApiKey -->

<add key="ApiKey" value="1234567890"/>

2.<!--微博开放平台ApiKeySecret-->

<add key="ApiKeySecret" value="0aaaaaaaaaaaaaaaaaaaaaaaa"/>


一: 请求用户授权Token: https://api.weibo.com/oauth2/authorize
参数 redirect_uri  需要与申请的应用的回调地址一致(上线后只要回调地址和你的上线网站在同一个域名下就可以);

本地测试最好是将127.0.0.1:10001/ 配置成域名的形式 local.host.com/;

配置:C:\WINDOWS\system32\drivers\etc     

    127.0.0.1       localhost(原有的)

    127.0.0.1       local.host.com(新增配置)就ok了。


二:获取Access Token:https://api.weibo.com/oauth2/access_token
  在一授权成功之后会返回code;这个code就是获取ACCESS_TOKEN的必传参数之一。


三:调用其它接口:
  调用二成功之后会返回调用其它接口必须要的access_token 和当前授权用户的微博id

  只要授权成功并成功得到access_token 调用其它接口就好办了,如:

1:发微博的接口:https://api.weibo.com/2/statuses/update.json

  只要将微博的内容UTF-8编码(System.Web.HttpUtility.UrlEncode(WeiboContent, System.Text.Encoding.GetEncoding("UTF-8"))),微博中如果想放个  url链接也直接放地址即可;

2:调用关注微博接口:https://api.weibo.com/2/friendships/create.json

  如果当前用户已经关注了你传过去需要关注的微博id的用户,服务器就会返回400的错误(不知为什么),只需在程序中try catch 一下就可以了

 

关注用户的post方法做了小改动,如果只指定方法总是返回403错误 代码:
        /// <summary>  
        /// 通过post请求指定url地址并返回结果(将参数写入网络流中)  
        /// </summary>  
        /// <param name="url">求地址</param>  
        /// <param name="nvc">参数hashtable</param>  
        /// <returns></returns>  
public static string RequestUrl_post(string url, Dictionary<string, string> nvc)

        {
            string param = "";
            foreach (string key in nvc.Keys)
            {
                param += "&" + key + "=" + nvc[key];
            }
            if (param.StartsWith("&"))
                param = param.Substring(1);
            byte[] bs = Encoding.ASCII.GetBytes(param); 
            string str = string.Empty;
            HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
            request.Method = "POST";
            request.MaximumAutomaticRedirections = 3;
            request.Timeout = 0x2710;
            request.C;
            request.ContentLength = bs.Length;

            using (Stream reqStream = request.GetRequestStream())
            {
                reqStream.Write(bs, 0, bs.Length);
            }
            using (Stream responseStream = ((HttpWebResponse)request.GetResponse()).GetResponseStream())
            {
                using (StreamReader reader = new StreamReader(responseStream))
                {
                    str = reader.ReadToEnd();
                }
            }
            return str;
        }

posted on 2014-02-27 16:45  mhker  阅读(568)  评论(0)    收藏  举报

刷新页面返回顶部
 
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3