예제 #1
0
        internal string ExecuteRequest(HttpWebRequest request, string payload, M2mgoUserToken token, ILogger logger)
        {
            request.Accept = "*/*";
            request.ServerCertificateValidationCallback = (sender, certificate, chain, errors) => {
                logger.Information("accept server certificate");
                return(true);
            };
            if (request.Method != "GET")
            {
                if (payload.IsNullOrEmpty())
                {
                    request.ContentLength = 0;
                }
                else
                {
                    var data   = Encoding.UTF8.GetBytes(payload);
                    var reqStr = request.GetRequestStream();
                    reqStr.Write(data, 0, data.Length);
                    request.ContentType = "application/json";
                }
            }

            if (token != null)
            {
                token.AddAuthorizationHeader(request);
            }

            logger.Information(request.RequestUri.ToString());

            using (HttpWebResponse resp = (HttpWebResponse)request.GetResponse()) {
                return(ReadDataFrom(resp));
            }
        }
예제 #2
0
        internal string ExecuteRequest(HttpWebRequest request, string payload, M2mgoUserToken token, ILogger logger)
        {
            request.Accept = "*/*";

            if (request.Method != "GET")
            {
                if (payload.IsNullOrEmpty())
                {
                    request.ContentLength = 0;
                }
                else
                {
                    var data   = Encoding.UTF8.GetBytes(payload);
                    var reqStr = request.GetRequestStream();
                    reqStr.Write(data, 0, data.Length);
                    request.ContentType = "application/json";
                }
            }

            if (token != null)
            {
                token.AddAuthorizationHeader(request);
            }

            logger.Information(request.RequestUri.ToString());

            using (HttpWebResponse resp = (HttpWebResponse)request.GetResponse()) {
                string rawData = String.Empty;
                if (resp.ContentLength > 0)
                {
                    using (var s = new StreamReader(resp.GetResponseStream())) {
                        rawData = s.ReadToEnd();
                    }
                }

                if (resp.StatusCode == HttpStatusCode.NotFound)
                {
                    return(String.Empty);
                }

                if (resp.StatusCode != HttpStatusCode.OK)
                {
                    throw new Exception(resp.StatusCode + ": " + rawData);
                }

                return(rawData);
            }
        }