带有标头和参数ASP.NET的HTTP Post

时间:2017-05-27 15:28:50

标签: c# asp.net rest http-post

我想将POST请求发送到文档中描述的API,但仅限于PHP示例。

这是显示应该发送给API的内容的屏幕 enter image description here

现在我的代码看起来像这样:

        string URI = "https://api.monetivo.com/v1/auth/login";
        string myParameters = "login=2DY9&password=346f417edb495e484b67";

        using (WebClient wc = new WebClient())
        {
            wc.Headers.Add("X-API-Token", "test_d7b8ddfe-fae6-404c-84fe-02c6d5d292e4");
            string HtmlResult = wc.UploadString(URI, myParameters);
        }

我总是收到错误401 No authorization。我需要帮助,我应该如何编码它以发送带有参数和特定标题的请求。

1 个答案:

答案 0 :(得分:0)

查看数据结构我认为您必须将x-www-form-urlencoded指定为内容类型。

using (WebClient wc = new WebClient())
{
    wc.Headers[HttpRequestHeader.ContentType] = "application/x-www-form-urlencoded";
    wc.Headers["X-API-Token"] = "test_d7b8ddfe-fae6-404c-84fe-02c6d5d292e4";
    string HtmlResult = wc.UploadString(URI, myParameters);
}

但除此之外,我建议您考虑将数据传递为NameValueCollection (see msdn)

var param = new System.Collections.Specialized.NameValueCollection();
param.Add("login", "2DY9");
param.Add("password", "346f417edb495e484b67");