示例#1
0
        private RequestResult Request(HttpWebRequest httpWebRequest, string url, string urlContent)
        {
            RequestResult result;
            bool          flag = false;

Label_0002:
            result = new RequestResult();
            HttpWebResponse response       = null;
            Stream          responseStream = null;
            StreamReader    reader         = null;

            result.IsError = true;
            try
            {
                if (!string.IsNullOrWhiteSpace(urlContent) && !flag)
                {
                    flag = true;
                    byte[] bytes = Encoding.UTF8.GetBytes(urlContent);
                    httpWebRequest.Method        = "POST";
                    httpWebRequest.ContentLength = bytes.Length;
                    using (Stream stream2 = httpWebRequest.GetRequestStream())
                    {
                        stream2.Write(bytes, 0, bytes.Length);
                        stream2.Close();
                    }
                }
                Logger.Info("强制更新s-HR数据:请求", this.Url + url, true);
                Logger.Info("强制更新s-HR数据:请求内容", urlContent, true);
                response       = httpWebRequest.GetResponse() as HttpWebResponse;
                responseStream = response.GetResponseStream();
                reader         = new StreamReader(responseStream);
                string str = reader.ReadToEnd();
                Logger.Info("强制更新s-HR数据:返回值", str, true);
                result.IsError = false;
                result.Content = str;
            }
            catch (Exception exception)
            {
                Logger.Error("强制更新s-HR数据", this.Url + url, exception);
                StringBuilder builder = new StringBuilder();
                MainWorker.BuildExceptionMessage(exception, builder);
                result.Content = builder.ToString();
            }
            finally
            {
                if (reader != null)
                {
                    reader.Close();
                }
                if (responseStream != null)
                {
                    responseStream.Close();
                }
                if (response != null)
                {
                    response.Close();
                }
            }
            string content = result.Content;

            if ((result.IsError || string.IsNullOrWhiteSpace(content)) || ((content.Contains("window.logoutHR") || content.Contains("id=\"loginForm\"")) || content.Contains("{\"sucess\":\"false\",\"msgCode\":\"500\",\"errorMsg\":\"session 已失效\"}")))
            {
                if (this.errorRequest < 3)
                {
                    Thread.Sleep(0x3e8);
                    this.errorRequest++;
                    if (((string.IsNullOrWhiteSpace(content) || content.Contains("window.logoutHR")) || (content.Contains("id=\"loginForm\"") || content.Contains("{\"sucess\":\"false\",\"msgCode\":\"500\",\"errorMsg\":\"session 已失效\"}"))) && !this._isLogin)
                    {
                        this.Login();
                    }
                    goto Label_0002;
                }
                this.errorRequest = 0;
                result.IsError    = true;
            }
            return(result);
        }