【问题标题】:When making a POST call using a WebClient, how do I send duplicate values in the NameValueCollection?使用 WebClient 进行 POST 调用时,如何在 NameValueCollection 中发送重复值?
【发布时间】:2013-09-03 17:12:02
【问题描述】:

不幸的是,我受制于一个强制在 POST 调用中重用参数名称的 API。

最终结果 POST 参数如下所示:

ArgNameA: xyz
ArgNameB: abc
ArgNameC: 123
ArgNameD: LMN
ArgNameC: 789
ArgNameD: JKL
ArgNameC: ...
ArgNameD: ...

你明白了。

我目前正在使用 NamedValueCollection 并将其发送到 WebClient 以进行 POST 调用。这很好用,但是当我尝试一遍又一遍地重用 ArgNameC 和 ArgNameD 时,它似乎将这些名称识别为集合中已经存在的名称,因此不会添加它们(或者它可能会更新它们,我不确定)。

如何使用允许我重用 POST 参数名称的 WebClient 进行 POST?

【问题讨论】:

  • 你能解释一下“当我尝试重用时”是什么意思...?您如何重用名称以及在什么上下文/区域?
  • 我需要使用 WebClient 进行 POST。 UploadValues 使用了 NameValueCollection 对象。如果两个 NameValuePairs 共享相同的名称,则 NameValueCollection 对象将不接受它们。我希望能够使用具有多个同名的 NameValuePairs 的 WebClient 发送 POST。

标签: c# web webclient


【解决方案1】:

我实际上能够在 webclient 上使用 UploadString() 方法并使用 HttpUtility.UrlEncode 手动构建 POST 数据字符串。

【讨论】:

    猜你喜欢
    • 2019-02-14
    • 1970-01-01
    • 2019-04-07
    • 2014-10-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多