Web APIを初めて使用しており、解決できない質問があります。ASP.NET - 複数の異なるパラメータを使用してWeb APIを呼び出して処理する
これは私の質問です:どのように複数のパラメータ(ストリームまたはオブジェクトと2つまたは3つの文字列)を必要とするWeb APIを呼び出しますか?そして、どのようにWeb APIの内部でこのパラメータを扱うのですか?ストリームは、ファイルのストリーム(またはその他の場合にはオブジェクト)をある
public class MyController : ApiController
{
[HttpPost]
public MyObject Method(Stream s, string first, string second)
{
// take the parameters and do something
}
}
:
は例えば、私は私のウェブAPIでこのメソッドを持っています。 これらのパラメータをすべてクライアント依頼の本文に追加するにはどうすればよいですか?そしてそこから彼らを奪い取ってその方法で使う方法は?
編集: この解決策は良いですか? ここではクライアント:
{
var client = new HttpClient();
var queryString = HttpUtility.ParseQueryString(string.Empty);
queryString["first"] = "true";
queryString["second"] = "false";
var uri = "https://myapi.com/api/mycontroller/method?" + queryString;
HttpResponseMessage response;
byte[] byteData = Encoding.UTF8.GetBytes(myFile);
using (var content = new ByteArrayContent(byteData))
{
content.Headers.ContentType = new MediaTypeHeaderValue("<application/json >");
response = await client.PostAsync(uri, content);
}
}
そして、ここでのWeb API:
[HttpPost]
public MyObject Method([FromBody]Stream s, [FromUri]string first, [FromUri]string second)
{
//do something
}
あなたは、このようにWEBAPIに複数のパラメータを渡すことはできません。 '[FromBody]'を使用してください –
ありがとう、ありがとう!しかし、私の最初の問題は、リクエストボディにオブジェクトを追加する方法です。そして、2回目には、Web APIメソッドでそれらをどのように処理するか。 – Giobbo
代わりにgetを使うことができます!あなたが実際に望むものであなたの投稿を明示的に更新する場合は、 – Aravind