gpt4 book ai didi

c# - 在 WebClient (C#/.net) 中发布数组

转载 作者:太空狗 更新时间:2023-10-29 20:29:06 25 4
gpt4 key购买 nike

我有一个 .net 应用程序,它有一个 WebRequest,它向 POST 添加多次相同的键,从而使它成为 PHP、Java Servlet 等眼中的数组。我想使用 WebClient 重写它,但是如果我多次使用相同的键调用 WebClient 的 QueryString.Add(),它只会附加新值,从而生成一个逗号分隔的单个值而不是值数组。

我使用 WebClient 的 UploadFile() 发布我的请求,因为除了这些元数据之外,我还想发布一个文件。

如何使用 WebClient 发布值数组而不是单个值(逗号分隔值)?

干杯

尼克

最佳答案

PHP 只是使用解析器将以数组格式发送的多个值转换为数组。格式为 <arrayName>[<key>] .

所以如果你想从 $_GET 接收一个 PHP 数组添加这些查询参数:x[key1]x[key2] . $_GET['x']在 PHP 中将是一个包含 2 个项目的数组:["x"]=> array(2) { ["key1"]=> <whatever> ["key2"]=> <whatever> } .

编辑 - 你可以试试这个扩展方法:

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");

没有查错等,大家可以自己做:)

关于c# - 在 WebClient (C#/.net) 中发布数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3942427/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com