我正在做一个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
});
}
我想将“application / x-form-urlencoded”“body”内容传递给PostAsync POST方法。但是,我得到一个错误,读取“body不是HttpContent类型”。
我无法施放或转换。现在怎么办?
让我知道我在这里做错了什么。
埃里克
答案 0 :(得分:34)
我不完全确定你要做什么,但可能将FormCollection
转换为字典并使用FormUrlEncodedContent
类就是你要找的。 p>
e.g:
var response = await httpClient.PostAsync("users",
new FormUrlEncodedContent(
body.
AllKeys.ToDictionary(
k => k, v => body[v])));