C#实现的HttpSQS客户端封装类

class HttpSQSClient

    {

        private String server, port, charset;



        public HttpSQSClient(String server, String port, String charset)

        {

            this.server = server;

            this.port = port;

            this.charset = charset;

        }



        private string DoProcess(String urlstr)

        {

            string result = String.Empty;



            Uri url = null;

            try

            {

                url = new Uri(urlstr);

            }

            catch (Exception e)

            {

                return "The httpsqs server must be error";

            }



            try

            {

                HttpWebRequest request = (HttpWebRequest)HttpWebRequest.Create(url);

                request.Method = "get";



                HttpWebResponse response = (HttpWebResponse)request.GetResponse();

                System.Text.Encoding encode;

                try

                {

                    encode = System.Text.Encoding.GetEncoding(response.CharacterSet);

                }

                catch

                {

                    encode = System.Text.Encoding.Default;

                }



                System.IO.Stream stream = response.GetResponseStream();

                System.IO.StreamReader read = new System.IO.StreamReader(stream, encode);

                result = read.ReadToEnd();



                response.Close();



                return result;

            }

            catch (IOException ex)

            {

                return "Get data error";

            }

        }



        public String MaxQueue(String queue_name, String num)

        {

            String urlstr = "http://" + this.server + ":" + this.port + "/?name="

                    + queue_name + "&opt=maxqueue&num=" + num;



            String result = null;



            result = this.DoProcess(urlstr);

            return result;

        }



        public String Reset(String queue_name)

        {

            String urlstr = "http://" + this.server + ":" + this.port + "/?name="

                    + queue_name + "&opt=reset";

            String result = null;



            result = this.DoProcess(urlstr);

            return result;

        }



        public String View(String queue_name, String pos)

        {

            String urlstr = "http://" + this.server + ":" + this.port

                    + "/?charset=" + this.charset + "&name=" + queue_name

                    + "&opt=view&pos=" + pos;

            String result = null;



            result = this.DoProcess(urlstr);

            return result;

        }



        public String Status(String queue_name)

        {

            String urlstr = "http://" + this.server + ":" + this.port + "/?name="

                    + queue_name + "&opt=status";

            String result = null;



            result = this.DoProcess(urlstr);

            return result;

        }



        public String Get(String queue_name)

        {

            String urlstr = "http://" + this.server + ":" + this.port

                    + "/?charset=" + this.charset + "&name=" + queue_name

                    + "&opt=get";

            String result = null;



            result = this.DoProcess(urlstr);

            return result;

        }



        public String Put(String queue_name, String data)

        {

            String ret = String.Empty;

            String urlstr = "http://" + this.server + ":" + this.port + "/?name="

                    + queue_name + "&opt=put";

            Uri url = null;

            try

            {

                url = new Uri(urlstr);

            }

            catch (Exception)

            {

                return "The httpsqs server must be error";

            }



            HttpWebRequest request = (HttpWebRequest)HttpWebRequest.Create(url);

            request.Method = "post";

            byte[] requestBytes = System.Text.Encoding.UTF8.GetBytes(data);

            request.ContentType = "application/x-www-form-urlencoded";

            request.ContentLength = requestBytes.Length;

            request.Timeout = 6000;

            try

            {

                Stream requestStream = request.GetRequestStream();

                requestStream.Write(requestBytes, 0, requestBytes.Length);

                requestStream.Close();



                HttpWebResponse response = (HttpWebResponse)request.GetResponse();

                StreamReader reader = new StreamReader(response.GetResponseStream(), System.Text.Encoding.Default);

                ret = reader.ReadToEnd();

            }

            catch (Exception)

            {

                return "Put data error";

            }



            return ret;

        }

    }

 

你可能感兴趣的:(https)