關於新浪微博獲取access_token
阿新 • • 發佈:2018-12-22
public void ProcessRequest(HttpContext context)
{
context.Response.ContentType = "text/plain";
//context.Response.Write("Hello World");
string client_id = context.Request.QueryString["client_id"];
string client_secret = context.Request.QueryString["client_secret"];
string code = context.Request.QueryString["code"];
string redirect_uri = context.Request.QueryString["redirect_uri"];
string results = getWBaccess_token(client_id, client_secret, code, redirect_uri);
context.Response.Write(results);
}
public bool IsReusable
{
get
{
return false;
}
}
public string getWBaccess_token(string client_id, string client_secret, string code, string redirect_uri)
{
string url = "https://api.weibo.com/oauth2/access_token?client_id=" + client_id + "&client_secret=" + client_secret + "&grant_type=authorization_code&redirect_uri=" + redirect_uri + "&code=" + code; ;
string ReqStr = RequestPostDataUrl(url, string.Empty);
return ReqStr;
}
#region Post請求伺服器資料
public string RequestPostDataUrl(string url, string strPostDatas)
{
string strResponse = "";
string targeturl = url.Trim().ToString();
//如果是傳送HTTPS請求
HttpWebRequest Request = null;
if (url.StartsWith("https", StringComparison.OrdinalIgnoreCase))
{
ServicePointManager.ServerCertificateValidationCallback = new RemoteCertificateValidationCallback(CheckValidationResult);
Request = WebRequest.Create(url) as HttpWebRequest;
Request.ProtocolVersion = HttpVersion.Version10;
}
else
{
Request = WebRequest.Create(url) as HttpWebRequest;
}
//HttpWebRequest Request = (HttpWebRequest)WebRequest.Create(targeturl);
Request.Method = "POST";
Request.KeepAlive = true;
Request.ContentType = "application/x-www-form-urlencoded";
byte[] postDatas = null;
if (strPostDatas != null && strPostDatas.Length > 0)
{
postDatas = Encoding.GetEncoding("utf-8").GetBytes(strPostDatas);
Request.ContentLength = postDatas.Length;
using (Stream reqStream = Request.GetRequestStream())
{
reqStream.Write(postDatas, 0, postDatas.Length);
}
}
HttpWebResponse Response = (HttpWebResponse)Request.GetResponse();
using (Stream resStream = Response.GetResponseStream())
{
using (StreamReader sr = new StreamReader(resStream, System.Text.Encoding.GetEncoding("utf-8")))
{
strResponse = sr.ReadToEnd();
}
}
return strResponse;
}
#endregion
private static bool CheckValidationResult(object sender, X509Certificate certificate, X509Chain chain, SslPolicyErrors errors)
{
return true; //總是接受
}
{
context.Response.ContentType = "text/plain";
//context.Response.Write("Hello World");
string client_id = context.Request.QueryString["client_id"];
string client_secret = context.Request.QueryString["client_secret"];
string code = context.Request.QueryString["code"];
string redirect_uri = context.Request.QueryString["redirect_uri"];
string results = getWBaccess_token(client_id, client_secret, code, redirect_uri);
context.Response.Write(results);
}
public bool IsReusable
{
get
{
return false;
}
}
public string getWBaccess_token(string client_id, string client_secret, string code, string redirect_uri)
{
string url = "https://api.weibo.com/oauth2/access_token?client_id=" + client_id + "&client_secret=" + client_secret + "&grant_type=authorization_code&redirect_uri=" + redirect_uri + "&code=" + code; ;
string ReqStr = RequestPostDataUrl(url, string.Empty);
return ReqStr;
}
#region Post請求伺服器資料
public string RequestPostDataUrl(string url, string strPostDatas)
{
string strResponse = "";
string targeturl = url.Trim().ToString();
//如果是傳送HTTPS請求
HttpWebRequest Request = null;
if (url.StartsWith("https", StringComparison.OrdinalIgnoreCase))
{
ServicePointManager.ServerCertificateValidationCallback = new RemoteCertificateValidationCallback(CheckValidationResult);
Request = WebRequest.Create(url) as HttpWebRequest;
Request.ProtocolVersion = HttpVersion.Version10;
}
else
{
Request = WebRequest.Create(url) as HttpWebRequest;
}
//HttpWebRequest Request = (HttpWebRequest)WebRequest.Create(targeturl);
Request.Method = "POST";
Request.KeepAlive = true;
Request.ContentType = "application/x-www-form-urlencoded";
byte[] postDatas = null;
if (strPostDatas != null && strPostDatas.Length > 0)
{
postDatas = Encoding.GetEncoding("utf-8").GetBytes(strPostDatas);
Request.ContentLength = postDatas.Length;
using (Stream reqStream = Request.GetRequestStream())
{
reqStream.Write(postDatas, 0, postDatas.Length);
}
}
HttpWebResponse Response = (HttpWebResponse)Request.GetResponse();
using (Stream resStream = Response.GetResponseStream())
{
using (StreamReader sr = new StreamReader(resStream, System.Text.Encoding.GetEncoding("utf-8")))
{
strResponse = sr.ReadToEnd();
}
}
return strResponse;
}
#endregion
private static bool CheckValidationResult(object sender, X509Certificate certificate, X509Chain chain, SslPolicyErrors errors)
{
return true; //總是接受
}