2017-06-04 201 views
0

Azure函數有點問題參數 我知道url參數像往常一樣發送到Azure函數「www.asdf.com?myParam =arnold」並被讀取爲像這如何將數組作爲url參數傳遞給Azure函數

req.GetQueryNameValuePairs().FirstOrDefault(q => string.Compare(q.Key, "myParam", true) == 0).Value 

我不明白的是如何發送數組作爲參數。

回答

2

一種方式是添加儘可能多的陣列的JSON如下

{ 
    "comment": { 
     "body": "blablabla" 
    } 
} 

當然是送的參數是這樣的:

www.asdf.com?myParam=arnold&myParam=james&myParam=william 

,然後讀取它們作爲

var params = req 
    .GetQueryNameValuePairs() 
    .Where(q => string.Compare(q.Key, "myParam", true) == 0) 
    .Select(q => q.Value); 
1

複雜的數據我建議你把它傳遞一個POST請求的JSON的身體,那麼您可以在一個動態的對象或Jobject,也可以自定義一個類反序列化。這裏是一個來自Azure文檔的例子

#r "Newtonsoft.Json" 

using System; 
using System.Net; 
using System.Threading.Tasks; 
using Newtonsoft.Json; 

public static async Task<object> Run(HttpRequestMessage req, TraceWriter log) 
{  
    string jsonContent = await req.Content.ReadAsStringAsync(); 
    dynamic data = JsonConvert.DeserializeObject(jsonContent); 

    log.Info($"WebHook was triggered! Comment: {data.comment.body}"); 

    return req.CreateResponse(HttpStatusCode.OK, new { 
     body = $"New GitHub comment: {data.comment.body}" 
    }); 
} 

在這個例子中,請求主體在數據對象中被反序列化。請求主體包含註釋屬性和註釋中有一個身體屬性,如您可以根據需要

希望它可以幫助

+1

這絕對是更大的有效載荷或複雜物體 –

相關問題