/// <summary>
        /// 请求上传图片API接口
        /// </summary>
        /// <param name="requestUri">API请求的uri</param>
        /// <param name="httpMethod">API的请求方式</param>
        /// <param name="requestParams">API的请求参数</param>
        /// <param name="imageParam">图片参数</param>
        private void AsyncRequestAPIWithFile(string requestUri, string httpMethod, Dictionary<string, object> requestParams, FileSyncAPIRequestFileParam fileParam)
        {
            HttpWebRequest request = null;
            FileSyncAPIRequestState state = new FileSyncAPIRequestState();
            try
            {
                requestUri = FileSyncUtility.AddParametersToURL(requestUri, requestParams);
                request = (HttpWebRequest)WebRequest.Create(new Uri(requestUri));

                boundary = "----------" + DateTime.Now.Ticks.ToString("x");

                byte[] beginBoundary = Encoding.UTF8.GetBytes(string.Format("--{0}\r\n", boundary));

                string fileTemplate = "Content-Disposition: form-data; name=\"file\"; filename=\"{0}\"\r\nContent-Type: application/octet-stream\r\n\r\n";
                byte[] bfile = Encoding.UTF8.GetBytes(String.Format(fileTemplate, fileParam.FileKey));

                byte[] endBoundary = Encoding.UTF8.GetBytes("\r\n--" + boundary + "--\r\n");

                request.Method = httpMethod;
                request.ContentType = "multipart/form-data; boundary=" + boundary;
                request.ContentLength = beginBoundary.Length + bfile.Length + fileParam.FileData.Length + endBoundary.Length;
                request.AllowWriteStreamBuffering = false;
                request.Timeout = 300000;

                state.request = request;
                state.requestParams = requestParams;
                state.fileParam = fileParam;
                state.beginBoundary = beginBoundary;
                state.bfile = bfile;
                state.endBoundary = endBoundary;

                request.BeginGetRequestStream(new AsyncCallback(RequestReadyWithFile), state);
            }
            catch (Exception ex)
            {
                if (DownloadStringCompleted != null)
                {
                    FileSyncError error = new FileSyncError();
                    error.error_code = requestErrorDomain;
                    error.error_msg = "A Error Occurred While Creating HTTP Web Request. " + ex.Message;
                    //System.Windows.Deployment.Current.Dispatcher.BeginInvoke(delegate()
                    // {
                    if (DownloadStringCompleted != null)
                    {
                        DownloadStringCompleted(this, new FileSyncRequestResultEventArgs(request == null ? null : request.Address, FileSyncAPIRequestResult.Fail, error) { RequestParams = requestParams });
                    }
                    // });
                }
            }
        }
        /// <summary>
        /// 判断是否是上传文件
        /// </summary>
        private FileSyncAPIRequestFileParam IsUploadFile(Dictionary<string, object> requestParams)
        {
            FileSyncAPIRequestFileParam fileParam = null;

            foreach (KeyValuePair<string, object> param in requestParams)
            {
                FileInfo fileTemp = param.Value as FileInfo;
                if (fileTemp != null)
                {
                    fileParam = new FileSyncAPIRequestFileParam();
                    fileParam.FileKey = param.Key;

                    using (FileStream stream = new FileStream(fileTemp.FullName, FileMode.Open))
                    {
                        byte[] bytes = new byte[stream.Length];

                        stream.Seek(0, SeekOrigin.Begin);
                        stream.Read(bytes, 0, bytes.Length);

                        fileParam.FileData = bytes;
                    }
                }
            }

            return fileParam;
        }