示例#1
0
        /// <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);
        }
示例#3
0
        /// <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);
        }