Azure関数の新機能私はVS 2017 15.4を使用しており、ローカルでhelloworld関数を実行しています。私はこの機能の要求を得ることができましたが、私はそれが与える同じURI上の投稿を実行するとき。Azure関数のポスト発行
mscorlib:関数実行中の例外:HelloWorld。 System.Net.Http.Formatting:MediaTypeFormatterは、 'application/octet-stream'というメディアタイプのコンテンツから 'Object'タイプのオブジェクトを読み取ることはできません。
大胆な行がポストリクエストで問題を起こしていることを忘れてしまったことを教えてください。私はcontentTypeを試してみました。身体と身体なし。
私はどのように青い関数の要求ボディでJsonオブジェクトを解析できますか? 1つの方法は、それを文字列で解析してjsonconvertを使用して逆シリアル化することでした。 valueprovidersのmodelbindersなどこれはapplication/json
に設定されている、あなたのHTTP要求にContent-Type
ヘッダを想定して動作するはず
[FunctionName("HelloWorld")]
public static async Task Run([HttpTrigger(AuthorizationLevel.Function, "get", "post", Route = null)]HttpRequestMessage req, TraceWriter log)
{
log.Info("C# HTTP trigger function processed a request.");
// parse query parameter
string name = req.GetQueryNameValuePairs()
.FirstOrDefault(q => string.Compare(q.Key, "name", true) == 0)
.Value;
// Get request body
*dynamic data = await req.Content.ReadAsAsync<object>();*
// Set name to query string or body data
name = name ?? data?.name;
return name == null
? req.CreateResponse(HttpStatusCode.BadRequest, "Please pass a name on the query string or in the request body")
: req.CreateResponse(HttpStatusCode.OK, "Hello " + name);
}.
私にはうまくいきましたが、クラスに私のjsonを解析する方法があります。文字列で解析してからjsonconvert.deserializeを使用して逆シリアル化を試みました。自動的に行うことができます。 –
Rakesh
'SampleType'型のクラスを持っている場合、' req.Content.ReadAsAsync