У меня проблемы с передачей идентификатора продукта клиенту API.
Это мой опубликованный контент, и он останавливается во время метода PutAsync
. Похоже, что он не получает ответ от клиента.
С «await» тогда var будет HttpResponseMessage
. На этом все останавливается, и мне приходится останавливать приложение.
Когда я удаляю await
, код запускается для проверки, которая становится Task<HttpResponseMessage>
, но product
не публикуется, и response
Статус становится WaitingForActivation
.
using (var client = new HttpClient())
{
// API base we're posting to
client.BaseAddress = new Uri("https://localhost:10201");
client.DefaultRequestHeaders.Accept.Clear();
client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
// add basic auth header
string username = "username";
string password = "password";
string encoded = System.Convert.ToBase64String(System.Text.Encoding.GetEncoding("ISO-8859-1").GetBytes(username + ":" + password));
client.DefaultRequestHeaders.Add("Authorization", "Basic " + encoded);
var entityContent = new StringContent(entityId, Encoding.UTF8, "application/json");
#region product
// <Product>
if (entityType == "product")
{
var result = await client.PutAsync($"/api/products/{item.Id}/propagate", entityContent);
ValidateResponse(result);
}
}
Вот сообщение от моего API:
INFO 2020-04-06 11: 38: 05,893 [[product -api] .HTTP_Listener_Config.worker.18] org.mule.routing.ExpressionSplitter: выражение не соответствует типу>, который можно разделить: java .lang.String
Все I ДЕЙСТВИТЕЛЬНО нужно сделать, это отправить идентификатор продукта без тела . Что мне нужно сделать, чтобы это заработало?