/// <summary> /// 执行微信公众平台API请求 /// </summary> /// <typeparam name="T">领域对象</typeparam> /// <param name="request">具体的微信公众平台请求</param> /// <returns>领域对象</returns> public T Execute <T>(IMpRequest <T> request) where T : MpResponse { request.Validate(); string body; webUtils = new WebUtils(); string url = request.GetReqUrl(); if (request.Method.Equals("GET", StringComparison.InvariantCultureIgnoreCase)) { if (request.GetType().ToString() == "Wx.Inter.Request.DownloadMediaRequest") { body = string.Empty; string fileName = string.Empty; string errHtml = string.Empty; bool isSuc = webUtils.DownloadFile(url, (request as DownloadMediaRequest).SaveDir, out fileName, out errHtml); if (isSuc) { body = fileName; } else { body = errHtml; } } else { body = webUtils.DoGet(url, null); } } else { //上传接口 if (request.GetType().ToString() == "Wx.Inter.Request.UploadMediaRequest") { Dictionary <string, FileItem> files = new Dictionary <string, FileItem>(); FileItem fileItem = new FileItem((request as UploadMediaRequest).FileName); files.Add(System.Guid.NewGuid().ToString(), fileItem); body = webUtils.DoPost(url, request.GetParameters(), files); } else { body = webUtils.DoPost(url, request.SendData); } } if (string.IsNullOrWhiteSpace(body)) { return(null); } T response = request.ParseHtmlToResponse(body); return(response); }
/// <summary> /// 执行微信公众平台API请求 /// </summary> /// <typeparam name="T">领域对象</typeparam> /// <param name="request">具体的微信公众平台请求</param> /// <returns>领域对象</returns> public T Execute <T>(IMpRequest <T> request) where T : MpResponse { request.Validate(); string body; _webUtils = new WebUtils(); var url = request.GetReqUrl(); if (request.Method.Equals("GET", StringComparison.InvariantCultureIgnoreCase)) { if (request.GetType().ToString() == "WeChatHelper.Request.DownloadMediaRequest") { var fileName = string.Empty; var errHtml = string.Empty; var downloadMediaRequest = request as DownloadMediaRequest; var isSuc = downloadMediaRequest != null && _webUtils.DownloadFile(url, downloadMediaRequest.SaveDir, out fileName, out errHtml); body = isSuc ? fileName : errHtml; } else { body = _webUtils.DoGet(url, null); } } else { if (request.GetType().ToString() == "WeChatHelper.Request.UploadMediaRequest") { var files = new Dictionary <string, FileItem>(); var uploadMediaRequest = request as UploadMediaRequest; if (uploadMediaRequest != null) { var fileItem = new FileItem(uploadMediaRequest.FileName); files.Add(Guid.NewGuid().ToString(), fileItem); } body = _webUtils.DoPost(url, request.GetParameters(), files); } else { body = _webUtils.DoPost(url, request.SendData); } } if (string.IsNullOrWhiteSpace(body)) { return(null); } //微信服务器返回的字符串内容body,request传入的对象,并获取对应对象的方法 var response = request.ParseHtmlToResponse(body); return(response); }
/// <summary> /// 执行微信公众平台API请求 /// </summary> /// <typeparam name="T">领域对象</typeparam> /// <param name="request">具体的微信公众平台请求</param> /// <returns>领域对象</returns> public T Execute <T>(IMpRequest <T> request) where T : MpResponse { request.Validate(); string body; webUtils = new WebUtils(); string url = request.GetReqUrl(); Utility.LogHelper.WriteInfo("HuiShouYin.Request", request.SendData); body = webUtils.DoPost(url, request.SendData); Utility.LogHelper.WriteInfo("HuiShouYin.Resonse", body); if (WebUtils.IsNullOrWhiteSpace(body)) { return(null); } T response = request.ParseHtmlToResponse(body); return(response); }