如何在c#中将数组作为查询字符串的参数发送?

sco*_*ttm 4 php c# arrays query-string

我正在尝试使用自行开发的Web API来检索一些数据.文档全部用PHP编写.我正在看的例子是这样的:

$params = array(
    'id' => 1
    ,'data' => array(
        ,'email' => 'example@hasoffers.com'
    )

$url = "www.someapi.com/api?" . http_build_query( $params );
Run Code Online (Sandbox Code Playgroud)

我正在使用C#WebClient类,但我无法弄清楚如何序列化数据参数:

WebClient wc = new WebClient();
wc.QueryString["id"] = "1";
wc.QueryString["data"] = // I have no idea.

string json = wc.DownloadString(apiUrl);
Run Code Online (Sandbox Code Playgroud)

我尝试了一些变化:

wc.QueryString["data"] = "email=test@stackoverflow.com";
wc.QueryString["data"] = Uri.EscapeDataString("data[email]=test@stackoverflow.com");
wc.QueryString["data"] = Uri.EscapeDataString("email[0]=test@stackoverflow.com");
wc.QueryString["data"] = Uri.EscapeDataString("email=test@stackoverflow.com");
Run Code Online (Sandbox Code Playgroud)

当然,我没有任何地方的PHP设置来查看http_build_query()实际返回的内容.

sco*_*ttm 5

我终于弄明白了.我想发布这个问题重启了我的大脑.

这是有效的:

wc.QueryString["data[email]"] = "test@stackoverflow.com";
Run Code Online (Sandbox Code Playgroud)