Как разместить данные с помощью DigestAuth Webapi

Я пытаюсь этот код для публикации данных, но я сталкиваюсь с ошибкой.

Произошла одна или несколько ошибок. System.Net.Http.HttpRequestException: при отправке запроса произошла ошибка. ---> System.Net.WebException: основное соединение было закрыто: при отправке произошла непредвиденная ошибка. ---> System.IO.IOException: аутентификация не удалась, потому что удаленная сторона закрыла транспортный поток.

    static void Main(string[] args)
    {
        Console.Write(CallAPis());
        Console.ReadLine(); 
    }

    public static string CallAPis()
    {
        try
        {

            var face = new FaceDataRecord()
            {
                faceURL = "http://admin.outout.club/wwwroot/images/64a.jpg",
                faceLibType = "blackFD",
                FDID = "2",
                name = "testbyandre234",
                gender = "male",
                bornTime = "2019-01-25",
            };
            string Host = "apiUrl";

            var credCache = new CredentialCache();
            credCache.Add(new Uri(Host), "Digest", new NetworkCredential("username", "password"));
            var HttpHandler = new HttpClientHandler();
            HttpHandler.Credentials = credCache.GetCredential(new Uri(Host), "Digest");

            var client = new HttpClient(new HttpClientHandler { Credentials = credCache });

            //client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
            var jso = JsonConvert.SerializeObject(face);
            //var json = new JavaScriptSerializer().Serialize(face);

            HttpContent cont = new StringContent(jso,
                            Encoding.UTF8,
                            "application/json");


            var response = client.PostAsync(Host, cont).Result;

            string res = "";
            using (HttpContent content = response.Content)
            {
                // ... Read the string.
                Task<string> result = content.ReadAsStringAsync();
                res = result.Result;
            }
            var jsoss = JsonConvert.DeserializeObject(res);
            return jsoss.ToString();
        }
        catch (Exception ex)
        {
            return ex.Message + " " + ex.InnerException;
        }

    }

0 ответов

Другие вопросы по тегам