示例#1
0
        public static Stream Request(string url, Enums.RequestType type, params KV[] parameters)
        {
            if (url.StartsWith("https"))
            {
                ServicePointManager.ServerCertificateValidationCallback = new RemoteCertificateValidationCallback(CheckValidationResult);
            }
            HttpWebRequest request = (HttpWebRequest)WebRequest.Create(new Uri(url));

            request.ProtocolVersion = HttpVersion.Version10;
            request.Timeout         = 6000;
            request.Method          = Enum.GetName(typeof(Enums.RequestType), type);
            if (parameters != null && parameters.Length > 0)
            {
                StringBuilder paramBuilder = new StringBuilder();
                foreach (var item in parameters)
                {
                    paramBuilder.AppendFormat("{0}={1}&", item._key, item._value);
                }
                var    paramStr      = paramBuilder.ToString().TrimEnd('&');
                byte[] paramArray    = Encoding.Default.GetBytes(paramStr);
                Stream requestStream = request.GetRequestStream();
                requestStream.Write(paramArray, 0, paramArray.Length);
                requestStream.Dispose();
                requestStream.Close();
            }
            HttpWebResponse response = (HttpWebResponse)request.GetResponse();

            return(response.GetResponseStream());
        }
        internal FtpWebResponse MakeRequest(Enums.RequestType requestType, string path = null)
        {
            var           uri = new Uri(BaseUri, path ?? string.Empty);
            FtpWebRequest req = (FtpWebRequest)WebRequest.Create(uri);

            req.Method      = requestMap[requestType];
            req.UsePassive  = UsePassiveMode;
            req.UseBinary   = UseBinaryTransferMode;
            req.Credentials = Credentials ?? new NetworkCredential();
            req.KeepAlive   = false;

            return((FtpWebResponse)req.GetResponse());
        }