Подтвердить что ты не робот

Создание асинхронного запроса HttpClient с данными из FormCollection

Я делаю проект Asp.Net MVC 4 и ищу внутренний запрос (например, прокси) для нашей службы api.

Вот как выглядит метод индекса в моем контроллере. Я застрял в части PostAsync.

[HttpPost]
public async Task<ActionResult> Index(FormCollection body){

   HttpClient httpClient  = new HttpClient();
   httpClient.BaseAddress = new Uri("http://myapi.com");

   // posts to http://myapi.com/users
   var response = await httpClient.PostAsync("users", body);

   if(response.isSuccessStatusCode) return Json(new {
        status = true,
        url    = response.Content.Url
   });
}

Я хочу передать содержимое "body" приложения "/application-x-form-urlencoded" в метод POST PostAsync. Тем не менее, я получаю сообщение об ошибке: "Тело не относится к типу HttpContent".

Я не могу отличить или преобразовать. Что теперь?

Позвольте мне знать, что я делаю неправильно здесь.

Эрик

4b9b3361

Ответ 1

Я не совсем уверен, что вы пытаетесь сделать, но, возможно, преобразование FormCollection в словарь и использование класса FormUrlEncodedContent - это то, что вы ищете.

например:.

var response = await httpClient.PostAsync("users",
                                          new FormUrlEncodedContent(
                                              body.
                                                  AllKeys.ToDictionary(
                                                      k => k, v => body[v])));