C#-微信公众平台接口-上传临时素材
最烦做微信公众平台的东西。。文档说得不清不楚,又没示例代码,只能自己 慢慢搜索,弄了一晚上,基本弄出来了,把本地的图片上传到微信的临时素材那里,返回媒体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#-微信公众平台接口-上传临时素材相关推荐
- 微信公众平台开发 上传下载多媒体文件
1 微信公众账号在回复图片.语音.视频的时候,将使用media_id来调用相关文件,很多朋友咨询这个如何开发实现.本文将介绍在微信公众平台开发过程中,如何上传下载多媒体文件. 2 3 4 5 一.上传 ...
- 微信公众平台开发 上传素材
微信公众账号在回复图片.语音.视频的时候,将使用media_id来调用相关文件,很多朋友咨询这个如何开发实现.本文将介绍在微信公众平台开发过程中,如何上传下载多媒体文件. 一.上传多媒体文件 公众号可 ...
- 微信公众号开发-上传媒体素材到微信并存入相关信息到数据库
流程: 本地指定临时或永久素材后调用微信媒体素材上传api,将文件上传到微信服务器,微信返回含media_id的信息,本地数据库存入相关信息,以供以后素材使用. 代码 素材上传页面 <!DOCT ...
- 微信公众号开发上传图文素材带有卡片小程序报错:errcode=45166,errmsg = invalid content hint...
微信公众号开发自从支持允许在群发图文中插入小程序,方便了小程序的运营及推广.最近在三方服务开发中,要支持图文素材插入小程序遇到了一个很是棘手的问题.官方给出的插入小程序的示例支持文字.图片.卡片.如下 ...
- 共享一个调用微信公众平台接口的客户端类库
由于我所开发活动项目经常要用到微信公众平台所提供的接口,所以本人专门开发了微信客户端的类库. 经过了几个项目的实践,特意将该类库共享出来.源代码已经放在了github上,供大家使用. 首先介绍一下设计 ...
- 微信公众号如何上传长图
微信公众号如何上传长图?我们先要了解为什么要做长图,有哪些难题,最后再来解决如何上传长图. 为什么要做长图? 回顾整个2019年,条漫当道,肉眼可见的,大号们都奔着条漫去了.他们大多看上去好像只用了一 ...
- Java 微信上传临时素材
微信小程序创建直播间,服务端上传临时素材,微信开放社区隐藏太深,不好找,记录一下,抄就行,亲测好用!!! /** * graphurl:上传临时素材微信接口地址,自己拼就行,file:客户端上传的文件 ...
- 微信公众号api关注接口php,微信公众平台接口开发入门示例
本文实例讲述了微信公众平台接口开发入门示例.分享给大家供大家参考.具体如下: 微信公众平台的接口开发是一个现在比较常用的功能了,很多的人都会去了解一下微信公众平台一些简单开发应用,这里就来给大家介绍一 ...
- 企业微信上传临时素材文件
1.控制层 /*** 上传临时素材*/@ResponseBody@PostMapping("/uploadResource")public BaseResponse uploadR ...
最新文章
- C语言检查一个字符串是否为另一个字符串的子字符串的算法(附完整源码)
- 类型“unknown”上不存在属性“foreach”_JavaScript红宝书第四版精简解析系列--映射Map数据类型...
- Screen命令让Linux shell在后台运行
- OSChina 周二乱弹 —— 这样成功要到小护士姐姐的微信
- ZOJ 3209 Treasure Map DLX
- 小身材大能耐,面向物联网开发的 ACRN Hypervisor开源啦!
- 程序下载至开发板 芯片超时无应答,无法连接
- js+canvas绘制360加速球
- 基于微博评论的情感分析研究(小记)
- mysql数据文件后缀名_数据文件的后缀名_MySQL
- GPRS DTU是什么?其工作原理是什么? (转自aerkate)
- Knative-serving资源详解
- Java实现微信公众号每日推送
- ARM交叉编译工具链分类说明
- 公众号滑动图代码_公众号怎么制作图片滑动的效果?怎么做可以上下滑动的长图?...
- 汇总现阶段reid方面一些SOTA的paper。
- 计算机程序设计员教程,国家职业资格培训教程计算机程序设计员(基础知识).ppt...
- 详细分析Java中的浅克隆和深克隆
- 阿里巴巴《Java开发手册》2020最新版发布!
- Windows系统读写ext2/3/4文件系统的工具「ext2fsd」
热门文章
- php语言使用statsd统计指标模板
- 虚拟机中web服务器的搭建,虚拟机下搭建web服务器
- tensorflow 1.0 学习:参数初始化(initializer)
- 大学计算机高级应用学什么,大学计算机高级应用 . 上卷
- POJ3522Slim Span(最大边与最小边差值最小的生成树)
- lxml 和 XPah (爬虫)
- 百练OJ:1007:DNA排序
- 全职宝妈跨专业备考信息系统项目管理师【52,52,51】
- 信息系统项目管理师-论文专题(三)范围管理论文写作
- Angular中父组件通过ViewChild调用子组件的方法