如何从C#中的WebClient上传JSON Post到服务器?

时间:2015-02-13 09:01:14

标签: c# json http post webclient

我有这个API网址:https://faucetbox.com/api/v1/send

使用此API数据:amount=1&to=xxx&api_key=yyy

我得到了这个C#代码:

string JSON_WRITER(string url,string JSON)
{
string result="";
using (var client = new WebClient())
{
result = client.UploadString(url, "POST", JSON);
}
return result;
}

这就是这样称呼的:

JSON_WRITER("https://faucetbox.com/api/v1/send", "amount=1&   to=DSfPc8GkRGF3Xrp99gHQFFJ7hcFJCqkwYH&api_key=4VdBEIAQKPpZ4SWOhQLUMn7mMNVql")

但是它不起作用,它会出现以下错误:

{"status":414,"message":"Missing or invalid parameters."}

有人可以更正语法错误,如果有的话,我没有JSON经验,或者请帮我解决问题,谢谢!

(不要担心API密钥,但它不会泄露私人信息)

1 个答案:

答案 0 :(得分:0)

编辑:添加JSON序列化以构建JSON。

 public class Data
 {
    public decimal Amount { get; set; }

    public string Api_Key { get; set; }

    public string To { get; set; }
 }

序列化代码:

string json = JsonConvert.SerializeObject(new Data { Amount = 1M, Api_Key = "Some key", To = "some destination" });

添加内容类型标题,如下所示。

client.Headers.Add(HttpRequestHeader.ContentType, "application/json");

JSON Payload:

{"amount":1,"to":"DSfPc8GkRGF3Xrp99gHQFFJ7hcFJCqkwYH","api_key":"4VdBEIAQKPpZ4SWOhQLUMn7mMNVql"}

JSON规范可以在下面找到。 http://json.org/