Как разместить данные с помощью 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;
}
}