Td.Weixin.Public/Extra/MediaManager.cs

(开头部分) 7KB

这里只显示每个文件的开头 60 行。登录后可以解锁完整代码。

using System.Collections.Generic;
using System.IO;
using System.Net;
using System.Text;
using System.Text.RegularExpressions;
using Newtonsoft.Json;
using Td.Weixin.Public.Common;

namespace Td.Weixin.Public.Extra
{
    public class MediaManager
    {
        /// <summary>
        /// 当前的接口地址
        /// </summary>
        public const string DefaultUploadUrl = "http://file.api.weixin.qq.com/cgi-bin/media/upload";

        //
        public const string DefaultDownloadUrl = "http://file.api.weixin.qq.com/cgi-bin/media/get";

        /// <summary>
        /// 使用缓存的accessToken与默认地址初始化实例
        /// </summary>
        public static MediaManager Default
        {
            get { return new MediaManager(Credential.CachedAccessToken); }
        }

        public string AccessToken { get; set; }

        public string UploadUrl { get; set; }

        public string DownLoadUrl { get; set; }

        public MediaManager(string accessToken)
        {
            AccessToken = accessToken;
            UploadUrl = DefaultUploadUrl;
            DownLoadUrl = DefaultDownloadUrl;
        }

        /// <summary>
        /// 上传媒体。
        /// 注意:如果上传失败,会抛出WxMenuException异常
        /// </summary>
        /// <param name="media"></param>
        /// <returns></returns>
        public RemoteMedia Upload(LocalMedia media)
        {
            var checkRet = MediaChecker(media);
            if (!checkRet.IsSuccess)
                throw new WxException(-9999, checkRet.ErrMsg);//todo:考虑是否设计新的Exception类,以区分异常是由微信抛出还是本地抛出

            var param = new FormData()
            {
                {"access_token", AccessToken},
                {"type", media.MediaType}
            };
            var rs = new HttpHelper(UploadUrl).Upload(param, media.MediaPath);
            var ret = JsonConvert.DeserializeObject<RemoteMedia>(rs);
后面还有 150 行代码,解锁后查看完整代码

24 小时内免费解锁 3 个项目,之后 1 算力/个。 规则说明

AI 解读 AI

登录后可用,每次 10 算力,解读结果公开显示在下面。

还没有人解读过这个文件。