POST'ing arrays in WebClient (C#/.net)

后端 未结 1 923
逝去的感伤
逝去的感伤 2020-12-06 18:35

I\'ve got a .net application that has a WebRequest that to a POST adds multiple times the same key, thus making it an array in the eyes of PHP, Java Servlets etc. I wanted t

相关标签:
1条回答
  • 2020-12-06 19:23

    PHP simply uses a parser to convert multiple values sent with array format to an array. The format is <arrayName>[<key>].

    So if you want to receive an array in PHP from $_GET add these query parameters: x[key1] and x[key2]. $_GET['x'] in PHP will be an array with 2 items: ["x"]=> array(2) { ["key1"]=> <whatever> ["key2"]=> <whatever> }.

    Edit - you can try this extension method:

    public static class WebClientExtension
    {
        public static void AddArray(this WebClient webClient, string key, params string[] values)
        {
            int index = webClient.QueryString.Count;
    
            foreach (string value in values)
            {
                webClient.QueryString.Add(key + "[" + index + "]", value);
                index++;
            }
        }
    }
    

    and in code:

    webClient.AddArray("x", "1", "2", "3");
    webClient.AddArray("x", "4");
    

    or manually:

    webClient.QueryString.Add("x[key1]", "4");
    webClient.QueryString.Add("x[key2]", "1");
    

    There is no error checking, etc. You can do it yourself :)

    0 讨论(0)
提交回复
热议问题