示例#1
0
        public void Send(string url, string json = "", bool compression = false)
        {
            string requestMethod = (string.IsNullOrEmpty(json)) ? UnityWebRequest.kHttpVerbGET : UnityWebRequest.kHttpVerbPUT;

            UnityWebRequest request = new UnityWebRequest(host + url, requestMethod)
            {
                certificateHandler = new Certificate(),
                downloadHandler    = new DownloadHandlerBuffer()
            };

            if (!string.IsNullOrEmpty(json))
            {
                byte[] data = compression ? SimpleZlib.CompressToBytes(json, 9) : Encoding.UTF8.GetBytes(json);

                request.uploadHandler = new UploadHandlerRaw(data);
                request.SetRequestHeader("Content-Type", "application/json");
            }

            if (!string.IsNullOrEmpty(session))
            {
                request.SetRequestHeader("Cookie", $"PHPSESSID={session}");
                request.SetRequestHeader("SessionId", session);
            }

            request.SendWebRequest();
        }
示例#2
0
文件: Request.cs 项目: xzpx001/Client
        public static string Send(string url, string data)
        {
            // set https protocol
            ServicePointManager.Expect100Continue = true;
            ServicePointManager.SecurityProtocol  = SecurityProtocolType.Tls12;
            ServicePointManager.ServerCertificateValidationCallback = delegate { return(true); };

            // create request
            WebRequest request = WebRequest.Create(new Uri(Globals.LauncherConfig.BackendUrl + url));

            byte[] bytes = SimpleZlib.CompressToBytes(data, zlibConst.Z_BEST_COMPRESSION);

            request.Method        = "POST";
            request.ContentType   = "application/json";
            request.ContentLength = bytes.Length;

            // send request
            using (Stream requestStream = request.GetRequestStream())
            {
                requestStream.Write(bytes, 0, bytes.Length);
            }

            // receive response
            WebResponse response = request.GetResponse();

            // get response data
            using (Stream responseStream = response.GetResponseStream())
            {
                using (MemoryStream ms = new MemoryStream())
                {
                    responseStream.CopyTo(ms);
                    return(SimpleZlib.Decompress(ms.ToArray(), null));
                }
            }
        }
 public static string GetJson(string url, bool compress = true)
 {
     using var stream = Send(url, "GET", null, compress);
     using var ms     = new MemoryStream();
     stream.CopyTo(ms);
     return(SimpleZlib.Decompress(ms.ToArray(), null));
 }
示例#4
0
 public string PostJson(string url, string data, bool compress = true)
 {
     using (Stream stream = Send(url, "POST", data, compress))
     {
         using (MemoryStream ms = new MemoryStream())
         {
             stream.CopyTo(ms);
             return(SimpleZlib.Decompress(ms.ToArray(), null));
         }
     }
 }
示例#5
0
        private Stream Send(string url, string method = "GET", string data = null, bool compress = true)
        {
            // disable SSL encryption
            ServicePointManager.Expect100Continue = true;
            ServicePointManager.SecurityProtocol  = SecurityProtocolType.Tls12;
            ServicePointManager.ServerCertificateValidationCallback = delegate { return(true); };

            // set session headers
            WebRequest request = WebRequest.Create(new Uri(RemoteEndPoint + url));

            if (!string.IsNullOrEmpty(Session))
            {
                request.Headers.Add("Cookie", $"PHPSESSID={Session}");
                request.Headers.Add("SessionId", Session);
            }

            request.Headers.Add("Accept-Encoding", "deflate");

            request.Method = method;

            if (method != "GET" && !string.IsNullOrEmpty(data))
            {
                // set request body
                byte[] bytes = (compress) ? SimpleZlib.CompressToBytes(data, zlibConst.Z_BEST_COMPRESSION) : Encoding.UTF8.GetBytes(data);

                request.ContentType   = "application/json";
                request.ContentLength = bytes.Length;

                if (compress)
                {
                    request.Headers.Add("Content-Encoding", "deflate");
                }

                using (Stream stream = request.GetRequestStream())
                {
                    stream.Write(bytes, 0, bytes.Length);
                }
            }

            // get response stream
            try
            {
                WebResponse response = request.GetResponse();
                return(response.GetResponseStream());
            }
            catch (Exception e)
            {
                Debug.LogError(e);
            }

            return(null);
        }
示例#6
0
        public string Send(string url, string data = null, bool compress = true)
        {
            // disable SSL encryption
            ServicePointManager.Expect100Continue = true;
            ServicePointManager.SecurityProtocol  = SecurityProtocolType.Tls12;
            ServicePointManager.ServerCertificateValidationCallback = delegate { return(true); };

            // set session headers
            WebRequest request = WebRequest.Create(new Uri(RemoteEndPoint + url));

            if (!string.IsNullOrEmpty(Session))
            {
                request.Headers.Add("Cookie", $"PHPSESSID={Session}");
                request.Headers.Add("SessionId", Session);
            }

            // set request type and body
            if (!string.IsNullOrEmpty(data))
            {
                byte[] bytes = (compress) ? SimpleZlib.CompressToBytes(data, zlibConst.Z_BEST_COMPRESSION) : Encoding.UTF8.GetBytes(data);

                request.Method        = "POST";
                request.ContentType   = "application/json";
                request.ContentLength = bytes.Length;

                using (Stream requestStream = request.GetRequestStream())
                {
                    requestStream.Write(bytes, 0, bytes.Length);
                }
            }
            else
            {
                request.Method = "GET";
            }

            // get response data
            WebResponse response = request.GetResponse();

            using (Stream responseStream = response.GetResponseStream())
            {
                using (MemoryStream ms = new MemoryStream())
                {
                    responseStream.CopyTo(ms);
                    return(SimpleZlib.Decompress(ms.ToArray(), null));
                }
            }
        }
        private static Stream Send(string url, string method = "GET", string data = null, bool compress = true)
        {
            // disable SSL encryption
            ServicePointManager.Expect100Continue = true;
            ServicePointManager.SecurityProtocol  = SecurityProtocolType.Tls12;
            ServicePointManager.ServerCertificateValidationCallback = delegate { return(true); };

            // set session headers
            var request = WebRequest.Create(new Uri(BackendUrl + url));

            request.Headers.Add("Accept-Encoding", "deflate");
            request.Method = method;

            if (method != "GET" && !string.IsNullOrWhiteSpace(data))
            {
                // set request body
                var bytes = (compress) ? SimpleZlib.CompressToBytes(data, zlibConst.Z_BEST_COMPRESSION) : Encoding.UTF8.GetBytes(data);

                request.ContentType   = "application/json";
                request.ContentLength = bytes.Length;

                if (compress)
                {
                    request.Headers.Add("Content-Encoding", "deflate");
                }

                using var stream = request.GetRequestStream();
                stream.Write(bytes, 0, bytes.Length);
            }

            // get response stream
            try
            {
                var response = request.GetResponse();
                return(response.GetResponseStream());
            }
            catch (Exception e)
            {
                MelonLogger.LogError(e.ToString());
            }

            return(null);
        }
示例#8
0
            public void Post(string url, string data, bool compression, Action <byte[]> onFinish = null)
            {
                var sendData = compression ? SimpleZlib.CompressToBytes(data, 9) : Encoding.UTF8.GetBytes(data);

                var request = new UnityWebRequest(_host + url, UnityWebRequest.kHttpVerbPUT)
                {
                    uploadHandler   = new UploadHandlerRaw(sendData),
                    downloadHandler = new DownloadHandlerBuffer()
                };

                request.SetRequestHeader("Content-Type", "application/json");
                request.certificateHandler = new CertificateCheck();

                if (_phpSession != null)
                {
                    request.SetRequestHeader("Cookie", $"PHPSESSID={_phpSession}");
                    request.SetRequestHeader("SessionId", _phpSession);
                }

                request.SendWebRequest();
            }
示例#9
0
        public string Send(string url, string data)
        {
            ServicePointManager.Expect100Continue = true;
            ServicePointManager.SecurityProtocol  = SecurityProtocolType.Tls12;
            ServicePointManager.ServerCertificateValidationCallback = delegate { return(true); };

            WebRequest request = WebRequest.Create(new Uri(RemoteEndPoint + url));

            if (data != null || data != "")
            {
                byte[] bytes = SimpleZlib.CompressToBytes(data, zlibConst.Z_BEST_COMPRESSION);

                request.Method        = "POST";
                request.ContentType   = "application/json";
                request.ContentLength = bytes.Length;

                using (Stream requestStream = request.GetRequestStream())
                {
                    requestStream.Write(bytes, 0, bytes.Length);
                }
            }
            else
            {
                request.Method = "GET";
            }

            WebResponse response = request.GetResponse();

            using (Stream responseStream = response.GetResponseStream())
            {
                using (MemoryStream ms = new MemoryStream())
                {
                    responseStream.CopyTo(ms);
                    return(SimpleZlib.Decompress(ms.ToArray(), null));
                }
            }
        }