У меня есть следующий код в контроллере MVC, что положить Guid строку образца в HttpResponseMessage:C# Чтение HTTP POST результат
public class CertifyController : Controller
{
[HttpPost]
public async Task<HttpResponseMessage> NewCertifyOfferRequestAsync(string requestString)
{
string activityId = "30dd879c-ee2f-11db-8314-0800200c9a66";
HttpResponseMessage httpResponseMessage = new HttpResponseMessage();
httpResponseMessage.Content = new StringContent(activityId);
return httpResponseMessage;
}
}
Я звоню этот контроллер через консольное приложение, используя следующий код:
using (HttpClient client = new HttpClient())
{
client.BaseAddress = new Uri("http://localhost:84928/");
client.DefaultRequestHeaders.Accept.Clear();
client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
string requestString = "df5f5587-f1ef-449a-9d20-7f386ea638a8";
HttpResponseMessage response = await client.PostAsJsonAsync("Certify/NewCertifyOfferRequestAsync", requestString);
if (response.IsSuccessStatusCode)
{
string activityId = await response.Content.ReadAsStringAsync();
Console.WriteLine("Received activity id: " + activityId);
}
}
Я ожидаю получить активность в ответ «30dd879c-ee2f-11db-8314-0800200c9a66». Но вместо этого activityId получает «StatusCode: 200, ReasonPhrase:« OK », Версия: 1.1, Содержимое: System.Net.Http.StringContent, Заголовки: \ r \ n {\ r \ n Content-Type: text/plain; charset = utf-8 \ r \ n} "из вызова ReadAsStringAsync.
Как изменить назначение activityId так, чтобы оно получило активность, которая была сгенерирована в контроллере?
Вы уверены, что что ActivityID не получает ваш результат вместе со всеми другими вещами? Опубликуйте весь результат здесь. – gustavodidomenico
Это ваш код _actual_ WebAPI? Похоже, вы возвращаете «HttpResponseMessge», который сериализуется в строку целиком. – CodeCaster
@gustavodidomenico Я отправил весь ответ activity.d.Content.ReadAsStringAsync(). – Romonov