21

我正在做一个 Asp.Net MVC 4 项目,并且正在寻找对我们的 api 服务的内部请求(如代理)。

这就是我的控制器中 index 方法的样子。我被困在 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
   });
}

我想将我的“application/x-form-urlencoded”“body”内容传递给 PostAsync POST 方法。但是,我收到错误消息“正文不是 HttpContent 类型”。

我无法投射或转换。现在怎么办?

让我知道我在这里做错了什么。

埃里克

4

1 回答 1

38

我不完全确定您要做什么,但可能将其转换FormCollection为字典并使用FormUrlEncodedContent该类是您正在寻找的。

例如:

var response = await httpClient.PostAsync("users",
                                          new FormUrlEncodedContent(
                                              body.
                                                  AllKeys.ToDictionary(
                                                      k => k, v => body[v])));
于 2012-10-23T20:27:14.733 回答