生成臨時wx二維碼,然後下載到本地,進行呼叫
阿新 • • 發佈:2018-12-31
請求api的方法
#region URL請求資料
/// <summary>
/// HTTP POST方式請求資料
/// </summary>
/// <param name="url">URL.</param>
/// <param name="param">POST的資料</param>
/// <returns></returns>
public static string HttpPost(string url, string param)
{
HttpWebRequest request = (HttpWebRequest)HttpWebRequest.Create(url);
request.Method = "POST";
request.ContentType = "application/x-www-form-urlencoded";
request.Accept = "*/*";
request.Timeout = 15000;
request.AllowAutoRedirect = false ;
StreamWriter requestStream = null;
WebResponse response = null;
string responseStr = null;
try
{
requestStream = new StreamWriter(request.GetRequestStream());
requestStream.Write(param);
requestStream.Close();
response = request.GetResponse();
if (response != null)
{
StreamReader reader = new StreamReader(response.GetResponseStream(), Encoding.UTF8);
responseStr = reader.ReadToEnd();
reader.Close();
}
}
catch (Exception)
{
throw;
}
finally
{
request = null;
requestStream = null;
response = null;
}
return responseStr;
}
/// <summary>
/// HTTP GET方式請求資料.
/// </summary>
/// <param name="url">URL.</param>
/// <returns></returns>
public static string HttpGet(string url)
{
HttpWebRequest request = (HttpWebRequest)HttpWebRequest.Create(url);
request.Method = "GET";
//request.ContentType = "application/x-www-form-urlencoded";
request.Accept = "*/*";
request.Timeout = 15000;
request.AllowAutoRedirect = false;
WebResponse response = null;
string responseStr = null;
try
{
response = request.GetResponse();
if (response != null)
{
StreamReader reader = new StreamReader(response.GetResponseStream(), Encoding.UTF8);
responseStr = reader.ReadToEnd();
reader.Close();
}
}
catch (Exception)
{
throw;
}
finally
{
request = null;
response = null;
}
return responseStr;
}
#endregion
生成臨時二維碼,然後下載到伺服器
#region 下載臨時二維碼,進行呼叫
/// <summary>
/// {"expire_seconds": 604800, "action_name": "QR_SCENE", "action_info": {"scene": {"scene_id": 123}}}
/// 臨時二維碼
/// </summary>
/// <param name="accessToken"></param>
/// <returns></returns>
Newtonsoft.Json.Linq.JObject getTicket(string accessToken, int memid)
{
string jsonString = "{\"expire_seconds\": \"604800\",\"action_name\": \"QR_SCENE\", \"action_info\": {\"scene\": {\"scene_id\": \"" + memid + "\"}}}";
var url = string.Format("https://api.weixin.qq.com/cgi-bin/qrcode/create?access_token={0}", accessToken);
var jsonStr = HttpPost(url, jsonString);//直接post一個json字串
return jsonStr.StrToJson();
}
/// 下載網路圖片
///
/// 網路地址
/// 本地儲存路徑
public void DownloadImage(string url, string path)
{
HttpWebRequest req = (HttpWebRequest)WebRequest.Create(url);
req.ServicePoint.Expect100Continue = false;
req.Method = "GET";
req.KeepAlive = true;
req.ContentType = "image/*";
HttpWebResponse rsp = (HttpWebResponse)req.GetResponse();
System.IO.Stream stream = null;
try
{
// 以字元流的方式讀取HTTP響應
stream = rsp.GetResponseStream();
Image.FromStream(stream).Save(path);
}
finally
{
// 釋放資源
if (stream != null) stream.Close();
if (rsp != null) rsp.Close();
}
}
/// <summary>
/// 獲取二維碼儲存到本地
/// </summary>
/// <param name="path"></param>
/// <param name="memid"></param>
/// <returns></returns>
string getEWM(string path, int memid)
{
wx w = new wx();
string at = w.access_token("wx355e13e6ae968fad", "2da7987a98ce652e3099b40bddce3595");
var ticket = getTicket(at, memid);
var url = "https://mp.weixin.qq.com/cgi-bin/showqrcode?ticket=" + ticket.GetValue("ticket");
DownloadImage(url, path);
return path;
}
#endregion