2016-12-15 7 views
1

読み方フォームデータAzure関数?私はいくつかの方法でそれを実行しようとしましたが、常に私はエラーを取得し、例えば:Azure関数 - フォームデータの読み方

using System.Net; 

public static async Task<HttpResponseMessage> Run(HttpRequestMessage req, TraceWriter log) 
{ 
    dynamic data = await req.Content.ReadAsFormDataAsync(); 

    return req.CreateResponse(HttpStatusCode.OK, $" {data}"); 
} 

エラー:

" ------WebKitFormBoundary47wKq7pk9Fcc4H9J\r\nContent-Disposition: form-data; name=\"name\"\r\n\r\nsdgs\r\n 
------WebKitFormBoundary47wKq7pk9Fcc4H9J\r\nContent-Disposition: form-data; name=\" _replyto\"\r\n\r\[email protected]\r\n 
------WebKitFormBoundary47wKq7pk9Fcc4H9J\r\nContent-Disposition: form-data; name=\"message\"\r\n\r\nsdgsd\r\n 
------WebKitFormBoundary47wKq7pk9Fcc4H9J--\r\n" 
:私は multipart/form-dataとして要求を取得しています要求内容を確認し、

Exception while executing function: Functions.FormTrigger. System.Net.Http.Formatting: No MediaTypeFormatter is available to read an object of type 'FormDataCollection' from content with media type 'application/json'.

ありがとうございます。

+0

どのような要求内容のタイプですか?つまり、application/x-www-form-urlencodedか、application/jsonのコンテンツを持っていますか? "ReadAsFormDataAsync"は、 "application/x-www-form-urlencoded"タイプのコンテンツのみを受け入れます。 – Nirman

+0

@Nirman私はそれを試して、それは動作しますが、常に次のような式から空の結果を得ます:data ["message"] –

+0

req.Content.ReadAsFormDataAsync()を読み込めますか?これはあなたに名前価値のコレクションを与えるべきです – Nirman

答えて

5

要求は内容の「アプリケーション/ x-www-form-urlencodedで」タイプが含まれているとして、あなたが入力を読み取るためにNameValueCollectionのに入力を変換する必要があります。

NameValueCollection col = req.Content.ReadAsFormDataAsync().Result; 
return req.CreateResponse(HttpStatusCode.OK, $" {col[0]}"); 

ます。また、キーの文字列を渡すことができますコードの読みやすさと自己説明性を高める索引の代わりに

関連する問題