У меня есть служба Windows, выполняющая HTTP-запрос POST. Конечная точка REST работает и тестировалась отдельно. После вызова PostAsync
отладчик не продолжает работу или выдает ошибку. Каковы возможные проблемы, вызывающие такое поведение? Ниже приведен фрагмент кода, отправляющий запрос POST,
EDIT: Я изменил это на asyn c -await и использовал ConfigureAWait
, но это не решило проблему. Мне нужно знать, из-за чего функция не возвращает никакого значения.
HttpClientHandler handler = GetCookieHandler();
using(HttpClient client = new HttpClient(handler)) {
client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("basic", accessToken);
client.DefaultRequestHeaders.Add("UniqueId", _configReader.UniqueId);
SetRequestCookie(handler);
string jsonContent = JsonConvert.SerializeObject(content);
HttpResponseMessage response = client.PostAsync(url, new StringContent(jsonContent, Encoding.UTF8, "application/json")).Result;
SaveCookie(handler, response.RequestMessage.RequestUri);
if (response.StatusCode == HttpStatusCode.Unauthorized) {
var customerJsonString = response.Content.ReadAsStringAsync().Result;
Error data = JsonConvert.DeserializeObject < Error > (customerJsonString);
switch (data.ErrorCode) {
case AccessTokenValidationCodes.ExpiredOrInvalidDateTime:
logger.Warn("Expired AccessToken");
break;
default:
break;
}
}
if (response.StatusCode == HttpStatusCode.Unauthorized) {
logger.Error("Request :{0}, AccessToken {1} response Unauthorized", apirUrl, accessToken);
return null;
}
if (response.StatusCode == HttpStatusCode.InternalServerError) {
logger.Warn("Request response InternalServerError");
return null;
}
return response;
}