を結合私はAzureの機能を作成しましたし、私はそれをローカルに実行している:MyDocument
ではなくHttpRequestMessage
の最初のパラメータであることをAzureの機能モデルが
[FunctionName("HttpTriggerCSharpSet")]
public static async Task<HttpResponseMessage> Set([HttpTrigger(AuthorizationLevel.Anonymous, "post", Route = null)] MyDocument req, TraceWriter log)
{
// ...
}
注意してください。私は、このアプローチがうまくいくはずであることをドキュメントで読んだことがあります。それはASP.NETモデルのバインディングと非常によく似ています(私の考えでは、とにかく)。 MyDocument
はわずか3つのプロパティを持つPOCOです。
public class MyDocument
{
public string Name { get; set; }
public int ShoeSize { get; set; }
public decimal Balance { get; set; }
}
私は(私はポストマンを使用しています)のような関数にポスト:
私は、エラーメッセージが出ます:[8/8/2017 2:21:07 PM] Exception while executing function: Functions.HttpTriggerCSharpSet. Microsoft.Azure.WebJobs.Host: Exception binding parameter 'req'. System.Net.Http.Formatting: No MediaTypeFormatter is available to read an object of type 'MyDocument' from content
(あなたもポストマンのスクリーンショットで見ることができます上記の)
私はフォームデータとx-www-form-urlencodedを試してみましたが、毎回同じエラーが発生しました。また、HttpRequestMessage
に切り替えてreq.Content.ReadAsAsync<MyDocument>
を使用してみましたが、同様のエラーが発生します。誤ってPOSTを構築していますか、Azure関数を間違って記述していますか?どちらの場合でも、正しい方法は何ですか?
それはAzureの機能に提出していますJSONでなければなりませんか?エンコードされたフォームは機能しませんか?それは私が気付かなかったどこかに文書化されていますか? –
(参考、動作します) –