C#-微信公众平台接口-上传临时素材
来源:互联网 发布:移动80端口 编辑:程序博客网 时间:2024/05/18 03:37
最烦做微信公众平台的东西。。文档说得不清不楚,又没示例代码,只能自己 慢慢搜索,弄了一晚上,基本弄出来了,把本地的图片上传到微信的临时素材那里,返回媒体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://api.weixin.qq.com/cgi-bin/media/upload?access_token={access_token}&type=image";
//图片转为流
Image img = new Bitmap(imgpath);
MemoryStream stream = new MemoryStream();
img.Save(stream, ImageFormat.Png);
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);
}
}
- C#-微信公众平台接口-上传临时素材
- 微信公众平台开发【素材管理】上传临时素材
- 微信公众平台开发【素材管理】上传临时素材
- 微信公众平台开发【素材管理】上传临时素材
- 公众号上传视频语音素材,公众平台临时素材开发,微信开发素材管理7
- 微信公众平台开发【素材管理】获取临时素材
- 微信公众平台开发 上传素材
- java微信公众平台开发四(上传素材)
- php上传公众号临时素材-微信开发素材管理6
- 微信公众号调用上传永久素材接口
- 开发微信公众平台群发接口时,在对接“上传图文消息素材”时,返回44003
- 解决微信上传临时素材
- 微信公众号接口开发:新增临时素材{"errcode":41005,"errmsg":"media data missing"}
- 微信公众平台教程--素材编辑
- 微信公众号开发---上传临时素材到公众号遇到的问题:"errcode":41005,"errmsg":"media data missing
- 微信公众号开发---上传临时素材到公众号遇到的问题:"errcode":41005,"errmsg":"media data missing
- 【企业微信开发笔记】调用上传临时素材文件接口报empty media data错误
- 设计实现微信公众号新增素材页面,用于添加公众号临时,永久素材
- 基于ubuntu16.04安装docker的教程
- 第三周 项目4-顺序表应用 (1)
- 第二章 比特币如何做到去中心化
- JAVA多线程Thread setPriority 设置线程优先级方法入门详解
- 安装mysql报错2503
- C#-微信公众平台接口-上传临时素材
- let's Encrypt永久免费证书SSL配置HTTPS
- 日历插件超简单好用功能强大的插件(附有源码文件和使用说明)
- 仿facebook
- 如何把java程序作为Linux服务启动
- 全新体验—Eclipse更换代码颜色与风格!
- 数据结构与算法之线性表(一)
- 黑胡子之谜
- A. Arpa and a research in Mexican wave