Beispiel #1
0
        /// <summary>
        /// 发送消息到 aliMQ
        /// </summary>
        /// <param name="msgBody">msg</param>
        /// <param name="tag">tag</param>
        /// <param name="key">key</param>
        /// <returns>是否成功</returns>
        private bool SendMessageToAliMQ(string msgBody, string tag, string key)
        {
            long time = GetCurrentTimeMillis();

            string signString = TopicID + NEWLINE + ProducerID + NEWLINE + GetMd5HashStr(msgBody) + NEWLINE + time;
            string sign       = SignString(signString, Ons_SecretKey);

            Dictionary <string, string> headers = new Dictionary <string, string>();

            headers.Add("Signature", sign);
            headers.Add("AccessKey", Ons_AccessKey);
            headers.Add("ProducerID", ProducerID);

            Dictionary <string, string> parameters = new Dictionary <string, string>();

            parameters.Add("topic", TopicID);
            parameters.Add("time", time.ToString());
            parameters.Add("tag", tag);
            parameters.Add("key", key);
            try
            {
                HttpWebResponseEx res = WebHttpHepper.SendRequest(Url, "POST", headers, parameters, msgBody);
                if (res.StatusCode == HttpStatusCode.Created)
                {
                    Console.WriteLine("Send Message Success:" + res.RetureValue);
                    return(true);
                }
            }
            catch (Exception)
            {
                Console.WriteLine("Send Message Fair:" + msgBody);
            }
            return(false);
        }
Beispiel #2
0
        /// <summary>
        /// 传入URL返回网页的html代码带有证书的方法
        /// </summary>
        /// <param name="url">URL</param>
        /// <returns></returns>
        public static HttpWebResponseEx SendRequest(string url, string method, Dictionary <string, string> headers = null, Dictionary <string, string> parameters = null, string postData = null)
        {
            StringBuilder urlBuilder = new StringBuilder(url);

            urlBuilder.Append(ConcatQueryString(parameters));
            url = urlBuilder.ToString();

            HttpWebRequest request = null;

            if (url.Contains("https"))
            {
                ServicePointManager.ServerCertificateValidationCallback = new RemoteCertificateValidationCallback(CheckValidationResult);
                request = (HttpWebRequest)WebRequest.CreateDefault(new Uri(url));
            }
            else
            {
                request = (HttpWebRequest)WebRequest.Create(url);
            }
            // 与指定URL创建HTTP请求
            request.UserAgent = "Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0; BOIE9;ZHCN)";
            request.Method    = method;
            request.Accept    = "*/*";

            //headers
            foreach (var header in headers)
            {
                request.Headers.Add(header.Key, header.Value);
            }

            if (method.ToUpper() == "POST")
            {
                byte[] data = Encoding.UTF8.GetBytes(postData);
                request.ContentType   = "text/plain;charset=UTF-8";
                request.ContentLength = data.Length;

                using (Stream steam = request.GetRequestStream())
                {
                    steam.Write(data, 0, data.Length);
                }
            }

            // 获取对应HTTP请求的响应
            HttpWebResponseEx res      = new HttpWebResponseEx();
            HttpWebResponse   response = (HttpWebResponse)request.GetResponse();

            res.StatusCode = response.StatusCode;

            // 对接响应流(以"UTF8"字符集)
            using (StreamReader reader = new StreamReader(response.GetResponseStream(), Encoding.UTF8))
            {
                res.RetureValue = reader.ReadToEnd();
            }
            return(res);
        }