Пример #1
0
        /// <summary>
        /// 新增临时素材
        /// </summary>
        /// <param name="file">文件流</param>
        /// <param name="fileName">文件名称</param>
        /// <param name="type">媒体文件类型,分别有图片(image)、语音(voice)、视频(video)和缩略图(thumb)</param>
        /// <returns></returns>
        public static EntMediaResult AddMedia(Stream file, string fileName, EntMediaType type)
        {
            MultipartFormDataContent content = EntInterface.BuildFromContent(fileName, file);

            var url = string.Format(ADD_MEDIA_URL, EntInterface.AccessToken, type.ToString());

            return(WebApiHelper.PostHttpContent <EntMediaResult>(url, content));
        }
Пример #2
0
        /// <summary>
        /// 新增永久素材
        /// </summary>
        /// <param name="type"></param>
        /// <param name="fileName"></param>
        /// <param name="file"></param>
        /// <param name="title">视频时有效</param>
        /// <param name="introduction">视频时有效</param>
        /// <returns></returns>
        public static EntMediaResult AddMaterial(EntMediaType type, Stream file, string fileName, string title, string introduction)
        {
            MultipartFormDataContent form = BuildFromContentForever(fileName, file, type, title, introduction);

            var url    = string.Format(ADD_MATERIAL_URL, EntInterface.AccessToken);
            var result = WebApiHelper.PostAsyncStr(url, form);

            return(SerializeHelper.JsonDeserialize <EntMediaResult>(result));
            //return WebApiHelper.PostAsync<EntMediaResult>(url, form);
        }
Пример #3
0
        /// <summary>
        /// 读取永久素材列表
        /// </summary>
        /// <param name="type">类型 不能为news</param>
        /// <param name="offset">从全部素材的该偏移位置开始返回,0表示从第一个素材 默认0</param>
        /// <param name="count">返回素材的数量,取值在1到20之间,默认20</param>
        /// <returns></returns>
        public static EntMeterialResult GetMaterialList(EntMediaType type, int offset, int count = 20)
        {
            var url = string.Format(GET_MATERIAL_LIST_URL, EntInterface.AccessToken);

            if (type == EntMediaType.news)
            {
                throw new Exception("news请使用GetMaterialNewsList");
            }

            return(WebApiHelper.PostAsync <EntMeterialResult>(url, new { type = type.ToString(), offset = offset, count = count }));
        }
Пример #4
0
        /// <summary>
        /// form文件头(永久素材)
        /// </summary>
        /// <param name="fileName"></param>
        /// <param name="file"></param>
        /// <param name="type"></param>
        /// <param name="title"></param>
        /// <param name="introduction"></param>
        /// <returns></returns>
        public static MultipartFormDataContent BuildFromContentForever(string fileName, Stream file, EntMediaType type, string title, string introduction)
        {
            var Boundary = EntInterface.Boundary;
            MultipartFormDataContent form = new MultipartFormDataContent(Boundary);

            // 文件头
            form.Headers.ContentType = MediaTypeHeaderValue.Parse("multipart/form-data;boundary=" + Boundary);
            // 视频特殊处理
            if (type == EntMediaType.video)
            {
                var video        = "{\"title\":\"" + title + "\", \"introduction\":\"" + introduction + "\"}";
                var videoContent = new StringContent(video);
                videoContent.Headers.ContentDisposition = new ContentDispositionHeaderValue("form-data")
                {
                    Name = "\"description\"",
                };

                form.Add(videoContent);
            }

            var content = EntInterface.BuildStreamContent(fileName, file);

            form.Add(content);
            return(form);
        }
Пример #5
0
 /// <summary>
 /// 新增永久素材
 /// </summary>
 /// <param name="filePath"></param>
 /// <param name="title"></param>
 /// <param name="type"></param>
 /// <param name="introduction"></param>
 /// <returns></returns>
 public static EntMediaResult AddMaterial(string filePath, string title, EntMediaType type, string introduction)
 {
     return(AddMaterial(type, File.OpenRead(filePath), Path.GetFileName(filePath), title, introduction));
 }
Пример #6
0
 /// <summary>
 /// 新增临时素材
 /// </summary>
 /// <param name="filePath"></param>
 /// <param name="type"></param>
 /// <returns></returns>
 public static EntMediaResult AddMedia(string filePath, EntMediaType type)
 {
     return(AddMedia(File.OpenRead(filePath), Path.GetFileName(filePath), type));
 }