dotnethttpclient-如何在c#中发布数值

本文关键字:布数值 dotnethttpclient- | 更新日期: 2023-09-27 17:59:18

我正在尝试使用HTTPclient发布到第三方api并获得响应。我可以发布到api,但我遇到的问题是api要求programid是数字。每当我试图发布这段代码时,它都会把它扔回去,告诉我让programid变为数字。

我不知道如何通过c#/.net在后发送数字

using (var client = new HttpClient())
{
    var values = new Dictionary<string, string>
    {
       { "accesstoken", authtoken },
       { "programid", programid},
       { "email", person.Email },
       { "thirdparty1", person.ID.ToString() }
    };
    var content = new FormUrlEncodedContent(values);
    var response = client.PostAsync("url", content);
    var responseString = response.Result.Content.ReadAsStringAsync();
}

dotnethttpclient-如何在c#中发布数值

也许是WebClient?

using (var client = new WebClient())
            {
                var values = new Dictionary<string, string>
    {
       { "accesstoken", authtoken },
       { "programid", programid.ToString()},
       { "email", person.Email },
       { "thirdparty1", person.ID.ToString() }
    };
                var param = string.Join("&", values.Select(x => x.Key + "=" + x.Value).ToArray());
                client.Headers[HttpRequestHeader.ContentType] = "application/x-www-form-urlencoded";
                string HtmlResult = client.UploadString(URI, "POST", param);
            }

只要确保你没有传递任何有趣的url路由字符,比如?或者&