public void HttpPostTest() { //return;//已经通过,但需要连接远程测试,太耗时,常规测试时暂时忽略。 /* * 说明:在测试之前请确保url可用 * 当前默认URL为Sample项目,可以使用Ctrl+F5打开Sample项目,确保可以访问 */ //随便找一个存在的测试图片 var file = "..\\..\\..\\..\\Senparc.Weixin.MP.Sample\\Senparc.Weixin.MP.Sample\\Images\\qrcode.jpg"; var url = "http://localhost:18666/TestUploadMediaFile/?token={0}&type={1}&contentLength={2}"; using (FileStream fs = new FileStream(file, FileMode.Open)) { url = string.Format(url, "TOKEN", UploadMediaFileType.image.ToString(), fs.Length); } //获取字符串结果 var actualResult = RequestUtility.HttpPost(url, new CookieContainer(), file); Assert.IsNotNull(actualResult); Console.WriteLine(actualResult); //比较强类型示例的结果 UploadMediaFileResult resultEntity = Post.GetResult <UploadMediaFileResult>(actualResult); Assert.IsNotNull(resultEntity); Assert.AreEqual(UploadMediaFileType.image, resultEntity.type); Assert.AreEqual("MEDIA_ID", resultEntity.media_id); Assert.AreEqual(123456789, resultEntity.created_at); }
/// <summary> /// /// </summary> /// <param name="obj"></param> public void SetUploadResultJson(object obj) { if (obj is UploadMediaFileResult) { this.UploadResultJson = (UploadMediaFileResult)obj; } }
/// <summary> /// 媒体文件上传接口 ///注意事项 ///1.上传的媒体文件限制: ///图片(image) : 1MB,支持JPG格式 ///语音(voice):1MB,播放长度不超过60s,支持MP4格式 ///视频(video):10MB,支持MP4格式 ///缩略图(thumb):64KB,支持JPG格式 ///2.媒体文件在后台保存时间为3天,即3天后media_id失效 /// </summary> /// <param name="accessToken"></param> /// <param name="type">上传文件类型</param> /// <param name="fileName">上传文件完整路径+文件名</param> /// <returns></returns> public static UploadMediaFileResult UploadMediaFile(string accessToken, UploadMediaFileType type, string fileName) { var cookieContainer = new CookieContainer(); var fileStream = FileHelper.GetFileStream(fileName); var url = string.Format("http://api.weixin.qq.com/cgi-bin/media/upload?access_token={0}&type={1}&filename={2}&filelength={3}", accessToken, type.ToString(), Path.GetFileName(fileName), fileStream != null ? fileStream.Length : 0); UploadMediaFileResult result = Post.PostGetJson <UploadMediaFileResult>(url, cookieContainer, fileStream); return(result); }
public void PostGetJsonTest() { return;//已经通过,但需要连接远程测试,太耗时,常规测试时暂时忽略。 var url = "http://api.weixin.qq.com/cgi-bin/media/upload?access_token=TOKEN&type=image"; try { //这里因为参数错误,系统会返回错误信息 UploadMediaFileResult resultFail = Post.PostGetJson <UploadMediaFileResult>(url, cookieContainer: null, formData: null, encoding: null); Assert.Fail();//上一步就应该已经抛出异常 } catch (ErrorJsonResultException ex) { //实际返回的信息(错误信息) Assert.AreEqual(ex.JsonResult.errcode, ReturnCode.验证失败); } }