首页 技术 正文
技术 2022年11月15日
0 收藏 883 点赞 3,491 浏览 2392 个字

最烦做微信公众平台的东西。。文档说得不清不楚,又没示例代码,只能自己 慢慢搜索,弄了一晚上,基本弄出来了,把本地的图片上传到微信的临时素材那里,返回媒体ID,用于其他操作,代码如下 :(自己导入相应的类System.Net.Http,JSON解析用的LitJson)

/// <summary>
        /// 上传临时素材
        /// 返回media_id
        /// </summary>
        /// <param name=”userid”></param>
        /// <returns></returns>
        public string UploadLinShiSuCai(int userid) {
            string imgpath = HttpContext.Current.Server.MapPath($”/upload/erweima/{userid}_2.png”);
            string appid = WxPayConfig.APPID;
            string secret = WxPayConfig.APPSECRET;

//1. 获取AccessToken(有效期7200秒,开发者必须在自己的服务全局缓存access_token)
            string url1 = $”https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid={appid}&secret={secret}”;
            string result = HttpService.Get(url1);
            JsonData jd = JsonMapper.ToObject(result);
            string access_token = (string)jd[“access_token”];

string url2 = $”https://img.zhankr.net/apjc5yddtvy187777);
            BinaryReader br = new BinaryReader(stream);
            byte[] data = stream.ToArray();
            stream.Close();

var boundary = “fbce142e-4e8e-4bf3-826d-cc3cf506cccc”;
            var client = new HttpClient();
            client.DefaultRequestHeaders.Add(“User-Agent”, “KnowledgeCenter”);
            client.DefaultRequestHeaders.Remove(“Expect”);
            client.DefaultRequestHeaders.Remove(“Connection”);
            client.DefaultRequestHeaders.ExpectContinue = false;
            client.DefaultRequestHeaders.ConnectionClose = true;
            var content = new MultipartFormDataContent(boundary);
            content.Headers.Remove(“Content-Type”);
            content.Headers.TryAddWithoutValidation(“Content-Type”, “multipart/form-data; boundary=” + boundary);
            var contentByte = new ByteArrayContent(data);
            content.Add(contentByte);
            contentByte.Headers.Remove(“Content-Disposition”);
            contentByte.Headers.TryAddWithoutValidation(“Content-Disposition”, $”form-data; name=\”media\”;filename=\”{userid}_2.png\”” + “”);
            contentByte.Headers.Remove(“Content-Type”);
            contentByte.Headers.TryAddWithoutValidation(“Content-Type”, “image/png”);
            try
            {
                var result2 = client.PostAsync(url2, content);
                if (result2.Result.StatusCode != HttpStatusCode.OK)
                    throw new Exception(result2.Result.Content.ReadAsStringAsync().Result);
                string jsonstr = result2.Result.Content.ReadAsStringAsync().Result;
                JsonData jd2 = JsonMapper.ToObject(jsonstr);
                result = (string)jd2[“media_id”];
                return result;
            }
            catch (Exception ex)
            {
                throw new Exception(ex.Message + ex.InnerException.Message);
            }

}

相关推荐
python开发_常用的python模块及安装方法
adodb:我们领导推荐的数据库连接组件bsddb3:BerkeleyDB的连接组件Cheetah-1.0:我比较喜欢这个版本的cheeta…
日期:2022-11-24 点赞:878 阅读:9,082
Educational Codeforces Round 11 C. Hard Process 二分
C. Hard Process题目连接:http://www.codeforces.com/contest/660/problem/CDes…
日期:2022-11-24 点赞:807 阅读:5,557
下载Ubuntn 17.04 内核源代码
zengkefu@server1:/usr/src$ uname -aLinux server1 4.10.0-19-generic #21…
日期:2022-11-24 点赞:569 阅读:6,406
可用Active Desktop Calendar V7.86 注册码序列号
可用Active Desktop Calendar V7.86 注册码序列号Name: www.greendown.cn Code: &nb…
日期:2022-11-24 点赞:733 阅读:6,179
Android调用系统相机、自定义相机、处理大图片
Android调用系统相机和自定义相机实例本博文主要是介绍了android上使用相机进行拍照并显示的两种方式,并且由于涉及到要把拍到的照片显…
日期:2022-11-24 点赞:512 阅读:7,815
Struts的使用
一、Struts2的获取  Struts的官方网站为:http://struts.apache.org/  下载完Struts2的jar包,…
日期:2022-11-24 点赞:671 阅读:4,898