httpclient c # couchdb не авторизован для создания базы данных - PullRequest
0 голосов
/ 01 июня 2018

У меня есть этот код ниже кода для создания базы данных в couchDB:

private async void DatabaseCreate()
        {
            if (!await DatabaseExist())
            {
                var contents = new StringContent("", Encoding.UTF8, "text/plain"); 
                this.uri = "http://USER:PASSWORD@localhost:5984/item_sn";
                var response = await client.PutAsync(this.uri, contents); //set the contents to null but same response.
                Console.WriteLine(response.Content.ReadAsStrifngAsync().Result); 
            }
        }

Моя проблема в том, что он дает мне ответ с StatusCode: 401, говоря "Unauthorized".Я попытался curl его в терминале, и он дает мне успешный ответ.Есть ли какие-то предварительные условия, которые мне нужно установить для httpclient?Или я использую неправильный метод.Я знаю, что есть какой-то сторонний пакет для couchDB, но для моего случая я просто хочу использовать httpclient C #.

Заранее спасибо

команда curl:

curl -X PUT http://USER:PASSWORD@localhost:5984/item_sn

Ответы [ 2 ]

0 голосов
/ 06 июня 2018

Вот код, который работал.

public async void DatabaseCreate()
            {
                if (!await DatabaseExist())
                {
                    var contents = new StringContent("", Encoding.UTF8, "text/plain");
                    var byteArray = Encoding.ASCII.GetBytes("user:pass");
                    client.DefaultRequestHeaders.Add("Authorization", "Basic " + Convert.ToBase64String(byteArray));
                    this.uri = "http://localhost:5984/databasename";
                    var response = await client.PutAsync(this.uri, contents);
                    Console.WriteLine(response.Content.ReadAsStringAsync().Result); 
                }
            }
0 голосов
/ 06 июня 2018

Похоже, в классе HttpClient вы можете включать учетные данные с HttpClientHandler Class с его свойством Credentials .Взгляните на этот ответ .Попробуйте, может быть, это сработает.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...