【问题标题】:WebClient POST no key parameter to Web APIWebClient POST 没有关键参数到 Web API
【发布时间】:2015-02-10 15:12:04
【问题描述】:

我知道,如果您想使用 WebClient 将变量 POST 到 Web API,则不包括参数键

using (WebClient client = new WebClient())
{
    string URI = "http://blablabla/api/testaction";
    string myParameters = "=TEST";

    using (WebClient wc = new WebClient())
    {
        wc.Headers[HttpRequestHeader.ContentType] = "application/x-www-form-urlencoded";

        string HtmlResult = wc.UploadString(URI, myParameters);
    }
}

我的问题是为什么不能包含参数键?

string myParameters = "myParam=TEST"; // doesn't work

如果要传递多个参数怎么办?

【问题讨论】:

  • 字符串 HtmlResult = wc.UploadString(URI, myParameters); // 可能是下载而不是上传?如果是后期操作,请检查您是否可以在调试中点击 Api 方法

标签: asp.net-web-api webclient asp.net-web-api2 http-status-code-415


【解决方案1】:

你应该像这样写参数

http://blablabla/api/testaction?parmeterName=parameterValue?pName=pValue

所以基本上我会这样写

string URI = "http://blablabla/api/testaction";
string myParameters = "?param=TEST";

【讨论】:

  • 这不适用于 Web Api。路由动作匹配但参数为空
  • 你说的是API控制器里面的参数吗?如果是这样,那么忽略我到目前为止回答的内容,控制器内部的参数必须是一个字符串,它本身的地址应该只是我回答中的 URI
猜你喜欢
  • 2016-09-27
  • 1970-01-01
  • 2017-08-03
  • 1970-01-01
  • 1970-01-01
  • 2014-01-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多