编辑。建议小提琴手的人很棒。原来我张贴的API吓坏了,因为c#应用程序没有用户代理。因此,添加一个标头固定它发布与网络客户端返回400坏请求
我想用c#web客户端发布到api,但似乎是跑到墙上。我试图用这个代码发布json到api,但是我得到的是400个不好的请求,我不知道发生了什么。
output = "{ \"id\": \"xxxxxx\", \"company\": \"test\", \"fname\": \"test\", \"lname\": \"test\", \"member_level\": \"Member\",\"status\": \"active\"}";
using (var client = new WebClient())
{
client.Headers.Add("token", "validtoken");
client.Headers.Add("Content-Type", "application/json");
client.UploadString(new Uri("url"), "POST", output);
}
我能够使用PowerShell成功发布使用webrequest,所以我知道URL和身份验证令牌是有效的。但无论出于何种原因,我无法让c#正确发布。这是正在运行的powershell命令
curl url -Method POST -H @{"token" = "token"} -ContentType "application/json" -Body '{ "id": "xxxxxx", "company": "test", "fname": "test", "lname": "test", "member_level": "test","status": "active"}'
安装[fiddler](http://www.telerik.com/fiddler)并查看两个HTTP请求。有什么区别。 – Liam
适用于我的Fiddler - 确保“url”是一个真正的值,例如'code'http://127.0.0.1:8888'code' – Saltire
任何不使用HttpClient的理由? –