21

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」コンテンツをPostAsyncPOSTメソッドに渡したい。ただし、「bodyは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 に答える