public Dictionary <string, object> GenerateSessionCookie(string dbName, string user, string password, TimeSpan?ttl)
        {
            var uri  = new Uri(AdminUri, $"{dbName}/_session");
            var body = new Dictionary <string, object>
            {
                ["name"]     = user,
                ["password"] = password
            };

            if (ttl != null)
            {
                body["ttl"] = (int)ttl.Value.TotalSeconds;
            }

            var bodyData = Manager.GetObjectMapper().WriteValueAsBytes(body).ToArray();
            var message  = WebRequest.CreateHttp(uri);

            message.Method        = "POST";
            message.ContentType   = "application/json";
            message.ContentLength = bodyData.Length;
            var requestStream = message.GetRequestStream();

            requestStream.Write(bodyData, 0, bodyData.Length);
            requestStream.Close();
            using (var response = (HttpWebResponse)message.GetResponse()) {
                Assert.AreEqual(HttpStatusCode.OK, response.StatusCode);
                return(Manager.GetObjectMapper().ReadValue <Dictionary <string, object> >(response.GetResponseStream()));
            }
        }
        public void SetOffline(string dbName)
        {
            var uri     = new Uri(AdminUri, String.Format("{0}/_offline", dbName));
            var message = WebRequest.CreateHttp(uri);

            message.Method = "POST";
            using (var response = (HttpWebResponse)message.GetResponse()) {
                Assert.AreEqual(HttpStatusCode.OK, response.StatusCode);
            }
        }
        public void DeleteSessionCookie(string dbName, string user)
        {
            var uri     = new Uri(AdminUri, $"{dbName}/_user/{user}/_session");
            var message = WebRequest.CreateHttp(uri);

            message.Method = "DELETE";
            using (var response = (HttpWebResponse)message.GetResponse()) {
                Assert.AreEqual(HttpStatusCode.OK, response.StatusCode);
            }
        }
Beispiel #4
0
        public bool CanReach(string remoteUri)
        {
            HttpWebRequest request = WebRequest.CreateHttp(remoteUri);

            request.AllowWriteStreamBuffering = true;
            request.Timeout = 5000;
            request.Method  = "GET";
            try {
                using (var response = (HttpWebResponse)request.GetResponse()) {
                    return(true); //We only care that the server responded
                }
            } catch (Exception e) {
                Log.D(TAG, "Didn't get successful connection to {0}", remoteUri);
                Log.E(TAG, "Exception: ", e);
                return(false);
            }
        }
Beispiel #5
0
        public bool CanReach(string remoteUri, TimeSpan timeout)
        {
            CouchbaseLiteHttpClientFactory.SetupSslCallback();
            HttpWebRequest request;

            var uri         = new Uri(remoteUri);
            var credentials = uri.UserInfo;

            if (!String.IsNullOrEmpty(credentials))
            {
                remoteUri = string.Format("{0}://{1}{2}", uri.Scheme, uri.Authority, uri.PathAndQuery);
                request   = WebRequest.CreateHttp(remoteUri);
                request.Headers.Add("Authorization", "Basic " + Convert.ToBase64String(Encoding.UTF8.GetBytes(credentials)));
                request.PreAuthenticate = true;
            }
            else
            {
                request = WebRequest.CreateHttp(remoteUri);
            }

            request.AllowWriteStreamBuffering = true;
            request.Timeout = (int)timeout.TotalMilliseconds;
            request.Method  = "HEAD";

            try {
                using (var response = (HttpWebResponse)request.GetResponse()) {
                    return(true); //We only care that the server responded
                }
            } catch (Exception e) {
                var we = e as WebException;
                if (we != null && we.Status == WebExceptionStatus.ProtocolError)
                {
                    return(true); //Getting an HTTP error technically means we can connect
                }

                Log.To.Sync.I(TAG, "Didn't get successful connection to {0}", remoteUri);
                Log.To.Sync.V(TAG, "   Cause: ", e);
                LastError = e;
                return(false);
            }
        }
        public bool CanReach(string remoteUri)
        {
            HttpWebRequest request;

            var uri         = new Uri(remoteUri);
            var credentials = uri.UserInfo;

            if (credentials != null)
            {
                remoteUri = string.Format("{0}://{1}{2}", uri.Scheme, uri.Authority, uri.PathAndQuery);
                request   = WebRequest.CreateHttp(remoteUri);
                request.Headers.Add("Authorization", "Basic " + Convert.ToBase64String(Encoding.UTF8.GetBytes(credentials)));
                request.PreAuthenticate = true;
            }
            else
            {
                request = WebRequest.CreateHttp(remoteUri);
            }

            request.AllowWriteStreamBuffering = true;
            request.Timeout = 10000;
            request.Method  = "GET";

            try {
                using (var response = (HttpWebResponse)request.GetResponse()) {
                    return(true); //We only care that the server responded
                }
            } catch (Exception e) {
                var we = e as WebException;
                if (we != null && we.Status == WebExceptionStatus.ProtocolError)
                {
                    return(true); //Getting an HTTP error technically means we can connect
                }

                Log.I(TAG, "Didn't get successful connection to {0}", remoteUri);
                Log.D(TAG, "   Cause: ", e);
                return(false);
            }
        }
        public bool CanReach(string remoteUri)
        {
            HttpWebRequest request = WebRequest.CreateHttp(remoteUri);

            request.AllowWriteStreamBuffering = true;
            request.Timeout = 10000;
            request.Method  = "GET";

            try {
                using (var response = (HttpWebResponse)request.GetResponse()) {
                    return(true); //We only care that the server responded
                }
            } catch (Exception e) {
                var we = e as WebException;
                if (we != null && we.Status == WebExceptionStatus.ProtocolError)
                {
                    return(true); //Getting an HTTP error technically means we can connect
                }

                Log.I(TAG, "Didn't get successful connection to {0}", remoteUri);
                Log.D(TAG, "   Cause: ", e);
                return(false);
            }
        }