WebClient中的POST数组(C#/ .net)
我有一个.net应用程序,它有一个WebRequest,它给POST添加了多次相同的键,从而使它成为PHP,Java Servlets等眼中的数组。我想重写这个使用WebClient,但如果我多次使用相同的键调用WebClient的QueryString.Add(),它只是附加新值,使用逗号分隔的单个值而不是值数组。
我使用WebClient的UploadFile()发布我的请求,因为除了这些元数据,我想要一个文件发布。
如何使用WebClient发布值数组而不是单个值(逗号分隔值)?
干杯
聂
PHP只是使用解析器将以数组格式发送的多个值转换为数组。 格式为
。
因此,如果您希望从$_GET
接收PHP中的数组,请添加以下查询参数: x[key1]
和x[key2]
。 PHP中的$_GET['x']
将是一个包含2个项目的数组: ["x"]=> array(2) { ["key1"]=>
。
编辑 – 您可以尝试以下扩展方法:
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++; } } }
并在代码中:
webClient.AddArray("x", "1", "2", "3"); webClient.AddArray("x", "4");
或手动:
webClient.QueryString.Add("x[key1]", "4"); webClient.QueryString.Add("x[key2]", "1");
没有错误检查等。你可以自己做:)