コード例 #1
0
ファイル: HttpHelper.cs プロジェクト: chenmsg/sujin
        public static int HttpPost(string url, string data, Encoding encoding, HttpWebRequestInitiator initiator, out string result)
        {
            try
            {
                HttpWebRequest webReq = (HttpWebRequest)WebRequest.Create(url);
                webReq.Method      = "POST";
                webReq.UserAgent   = "Anxin_Server";
                webReq.ContentType = "application/x-www-form-urlencoded;charset=GBK";

                if (initiator != null)
                {
                    initiator(webReq);
                }

                if (webReq.ContentType == "application/json" || webReq.ContentType == "text/json")
                {
                    using (var streamWriter = new StreamWriter(webReq.GetRequestStream()))
                    {
                        streamWriter.Write(data);
                        streamWriter.Close();
                    }
                }
                else
                {
                    byte[] bData = encoding.GetBytes(data);
                    webReq.ContentLength = bData.Length;
                    using (Stream PostData = webReq.GetRequestStream())
                    {
                        PostData.Write(bData, 0, bData.Length);
                        PostData.Close();
                    }
                }
                //ServicePointManager.SecurityProtocol = SecurityProtocolType.Ssl3 | SecurityProtocolType.Tls | SecurityProtocolType.Tls11 | SecurityProtocolType.Tls12;
                ServicePointManager.SecurityProtocol = SecurityProtocolType.Ssl3 | SecurityProtocolType.Tls12 | SecurityProtocolType.Tls11 | SecurityProtocolType.Tls;
                //ServicePointManager.SecurityProtocol = SecurityProtocolType.Ssl3;
                ServicePointManager.ServerCertificateValidationCallback = new System.Net.Security.RemoteCertificateValidationCallback(CheckValidationResult);



                HttpWebResponse WebResp = (HttpWebResponse)webReq.GetResponse();
                Stream          Answer  = WebResp.GetResponseStream();
                result = getResult(Answer, encoding);
                return((int)WebResp.StatusCode);
            }
            catch (System.Exception ex)
            {
                result = $"{{ \"ret\":500,\"code\":\"-1000\", \"message\":\"{ex.Message}\"  }}";
                return(500);
            }
        }
コード例 #2
0
ファイル: HttpHelper.cs プロジェクト: zszqwe/Gecko.Ace
        public static int HttpPost(string url, string data, Encoding encoding, HttpWebRequestInitiator initiator, out string result)
        {
            try
            {
                HttpWebRequest webReq = (HttpWebRequest)WebRequest.Create(url);
                webReq.Method      = "POST";
                webReq.UserAgent   = "Gecko_Server";
                webReq.ContentType = "application/x-www-form-urlencoded;charset=GBK";

                if (initiator != null)
                {
                    initiator(webReq);
                }

                if (webReq.ContentType == "application/json" || webReq.ContentType == "text/json")
                {
                    using (var streamWriter = new StreamWriter(webReq.GetRequestStream()))
                    {
                        streamWriter.Write(data);
                        streamWriter.Close();
                    }
                }
                else
                {
                    byte[] bData = encoding.GetBytes(data);
                    webReq.ContentLength = bData.Length;
                    using (Stream PostData = webReq.GetRequestStream())
                    {
                        PostData.Write(bData, 0, bData.Length);
                        PostData.Close();
                    }
                }

                HttpWebResponse WebResp = (HttpWebResponse)webReq.GetResponse();
                Stream          Answer  = WebResp.GetResponseStream();
                result = getResult(Answer, encoding);
                return((int)WebResp.StatusCode);
            }
            catch (System.Exception ex)
            {
                result = ex.Message;
                return(0);
            }
        }
コード例 #3
0
ファイル: HttpHelper.cs プロジェクト: chenmsg/sujin
        public static string HttpGetHTML(string uri, System.Text.Encoding code, System.Net.CookieContainer cotainer, HttpWebRequestInitiator initiator)
        {
            if (string.IsNullOrEmpty(uri))
            {
                return("");
            }
            if (uri.ToLower().StartsWith(@"//"))
            {
                uri = "http:" + uri;
            }

            if (uri.ToLower().IndexOf("http") == -1)
            {
                uri = "http://" + uri;
            }

            StreamReader sr = null;

            try
            {
                HttpWebRequest request = (HttpWebRequest)WebRequest.Create(uri);
                request.Headers.Add("UA-CPU", "x86");
                request.Referer         = uri;
                request.UserAgent       = "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.2; .NET CLR 1.1.4322; .NET CLR 2.0.50727;)";
                request.KeepAlive       = false;
                request.CookieContainer = cotainer;
                request.Timeout         = 20000; //设置远程页面请求超时时间

                if (initiator != null)
                {
                    initiator(request);
                }

                HttpWebResponse myResponse = (HttpWebResponse)request.GetResponse();
                if (myResponse.StatusCode == HttpStatusCode.OK)
                {
                    sr = new StreamReader(myResponse.GetResponseStream(), code);
                    string serverResponse = sr.ReadToEnd().Trim();
                    return(serverResponse);
                }
                else
                {
                    return("失败:Status:" + myResponse.StatusCode.ToString());
                }
            }
            catch (Exception ex)
            {
                return("失败:ex:" + ex.ToString());
            }
            finally
            {
                if (sr != null)
                {
                    sr.Close();
                    sr.Dispose();
                }
            }
        }
コード例 #4
0
ファイル: HttpHelper.cs プロジェクト: chenmsg/sujin
 public static string HttpGetHtml(string url, HttpWebRequestInitiator initiator)
 {
     return(HttpGetHTML(url, Encoding.UTF8, new CookieContainer(), initiator));
 }
コード例 #5
0
 public static IAsyncResult HttpPost(string uri, string body, HttpWebRequestInitiator initiator, HttpWebRequestAsyncCallback callback)
 {
     return(RequestHttp(HttpHelper.HttpMethod_POST, uri, DefaultEncoding, DefaultTimeOut, DefaultCookies, body, initiator, callback));
 }
コード例 #6
0
        public static IAsyncResult RequestHttp(string httpMethod, string uri, Encoding encoding, int timeOut, CookieContainer cookies, string body, HttpWebRequestInitiator initiator, HttpWebRequestAsyncCallback callback)
        {
            var postParams = string.Empty;

            var request = (HttpWebRequest)WebRequest.Create(uri);

            if (cookies != null)
            {
                request.CookieContainer = cookies;
            }
            request.Timeout     = timeOut;
            request.Method      = httpMethod;
            request.UserAgent   = "Mozilla/5.0 (Windows NT 6.2; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/49.0.1667.0 Safari/537.36 GeckoDotnetHttpClient";
            request.ContentType = "application/x-www-form-urlencoded";

            if (initiator != null)
            {
                initiator(request);
            }

            if (httpMethod.ToLower() == HttpHelper.HttpMethod_POST.ToLower())
            {
                if (request.ContentType == "application/json" || request.ContentType == "text/json")
                {
                    using (var streamWriter = new StreamWriter(request.GetRequestStream()))
                    {
                        streamWriter.Write(body);
                        streamWriter.Close();
                    }
                }
                else
                {
                    var postData = encoding.GetBytes(body);
                    request.ContentLength = postData.Length;
                    using (var stream = request.GetRequestStream())
                    {
                        stream.Write(postData, 0, postData.Length);
                        stream.Close();
                    }
                }
            }

            var asyncCallback = new AsyncCallback(ar => {
                var serverResponse = string.Empty;
                var isOK           = false;
                try
                {
                    using (var response = request.EndGetResponse(ar) as HttpWebResponse)
                    {
                        var statusCode = response.StatusCode;
                        if (statusCode == HttpStatusCode.OK || statusCode == HttpStatusCode.Created || statusCode == HttpStatusCode.Accepted)
                        {
                            isOK = true;
                        }

                        callback(ar, new WebRequestCallbackData()
                        {
                            IsOK     = isOK,
                            Encoding = encoding,
                            Response = response
                        });
                    }
                }
                catch (Exception)
                {
                    callback(ar, new WebRequestCallbackData()
                    {
                        IsOK     = false,
                        Encoding = encoding,
                        Response = null,
                    });
                }
            });



            return(request.BeginGetResponse(asyncCallback, string.Empty));
        }