官方文檔:https://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1421141013&token=&lang=zh_CNhtml
建立自定義菜單:json
MVC中的接口方法爲:api
public void CreateMenu() { string access_token = AdminUtil.GetAccessToken(); string posturl = "https://api.weixin.qq.com/cgi-bin/menu/create?access_token=" + access_token; string menuStr = "";// " 菜單結構"; using (StreamReader sr = new StreamReader(HttpContext.Server.MapPath("/Impl/MyMenu.json"))) { menuStr = sr.ReadToEnd(); } string responseResult = HttpRequestUtil.RequestUrlSendMsg(posturl, "POST", menuStr); Response.Write(responseResult); }
MyMenu.json文件爲:cookie
{ "button": [ { "name": "資訊服務", "sub_button": [ { "type": "view", "name": "營業網點查詢1", "url": "http://www.soso.com/" }, { "type": "view", "name": "還款計算器", "url": "http://v.qq.com/" } ] }, { "name": "業務中心", "sub_button": [ { "type": "view", "name": "擔保業務辦理", "url": "http://www.soso.com/" }, { "type": "click", "name": "公積金擔保查詢", "key": "V1001_01" } ] }, { "name": "我的中心", "sub_button": [ { "type": "view", "name": "優惠券管理", "url": "http://www.soso.com/" }, { "type": "view", "name": "房產中心", "url": "http://v.qq.com/" } ] } ] }
HttpRequestUtil類中的代碼post
#region 請求Url,發送json數據 /// <summary> /// 請求Url,發送json數據 /// </summary> public static string RequestUrlSendMsg(string url, string method,string JSONData) { byte[] bytes = Encoding.UTF8.GetBytes(JSONData); // 設置參數 HttpWebRequest request = WebRequest.Create(url) as HttpWebRequest; CookieContainer cookieContainer = new CookieContainer(); request.CookieContainer = cookieContainer; request.AllowAutoRedirect = true; request.Method = method; request.ContentType = "text/html"; request.Headers.Add("charset", "utf-8"); Stream reqstream = request.GetRequestStream(); reqstream.Write(bytes, 0, bytes.Length); //聲明一個HttpWebRequest請求 request.Timeout = 90000; //設置鏈接超時時間 request.Headers.Set("Pragma", "no-cache"); //發送請求並獲取相應迴應數據 HttpWebResponse response = request.GetResponse() as HttpWebResponse; //直到request.GetResponse()程序纔開始向目標網頁發送Post請求 Stream responseStream = response.GetResponseStream(); StreamReader sr = new StreamReader(responseStream, Encoding.Default); //返回結果網頁(html)代碼 string content = sr.ReadToEnd(); return content; } #endregion