C# Читайте http пост результат

У меня есть следующий код в контроллере MVC, который помещает образец строки guid в HttpResponseMessage:

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);
    }
}

Я ожидаю получить активность ID "30dd879c-ee2f-11db-8314-0800200c9a66" в ответе. Но вместо этого ActivityId получает "StatusCode: 200, ReasonPhrase: 'OK', Версия: 1.1, Content: System.Net.Http.StringContent, Заголовки:\r\n{\r\n Content-Type: text/plain; charset=utf-8\r\n}"из вызова ReadAsStringAsync.

Как я должен изменить присвоение ActivityId, чтобы он получал ActivityId, генерируемый в контроллере?

1 ответ

Решение

Если это webapi, вы сможете изменить сигнатуру вашего метода, чтобы она возвращала "строку" вместо HttpResponseMessage.

например

public string Get(int id)
{
    return "value";
}

Для получения подробного примера вы можете использовать Visual Studio для создания веб-приложения WebApi и посмотреть на "ValuesController.cs".

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