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タイプではありません」というエラーが表示されます。
キャストも変換もできません。今何?
ここで私が間違っていることを教えてください。
エリック
何をしようとしているのか完全にはわかりませんが、おそらくFormCollection
を辞書に変換し、FormUrlEncodedContent
クラスを使用することがあなたが探しているものです。
例えば。:
var response = await httpClient.PostAsync("users",
new FormUrlEncodedContent(
body.
AllKeys.ToDictionary(
k => k, v => body[v])));