向API发送POST请求时出错(无法发送具有此动词类型的正文)

时间:2017-12-18 11:28:02

标签: c# api post webclient

当我尝试请求API时,我总是收到此错误。 关于api的一些细节:方法是POST,参数也是正确的(当我在邮递员上尝试时,没有问题)

这是我的代码:

JavaScriptSerializer js = new JavaScriptSerializer();
using (WebClient client = new WebClient())
{
    foreach (var ad in documents)
    {

        var doc = js.Serialize(ad);
        var json = "{\"Message\":\"" + doc + "\"}";

        var response =
            client.UploadValues("apiUrl", new NameValueCollection()
            {
                {"json", json}
            });
    }
}

我读到默认情况下UploadValues是POST。此代码在一个简单的控制台应用程序中调用。知道为什么我会收到这个错误吗?

1 个答案:

答案 0 :(得分:2)

这是一段代码:

var doc = JsonConvert.SerializeObject(message);    
var stringContent = new StringContent(
        message,
        UnicodeEncoding.UTF8,
        "application/json");

HttpClient client = new HttpClient();                

client.PostAsync("apiUrl", stringContent);