使用C#中的RestSharp发送参数请求。出现错误:JSON正文中缺少必填字段\“ expr \”

时间:2019-12-06 15:16:06

标签: c# restsharp webapi

我正在Windows Form应用程序中编写一个简单的计算机应用程序。我想使用数学js web api(发布)执行操作,但是在我调用api的地方却收到此错误:

  

错误:响应中的JSON正文中缺少必填字段\“ expr \”

我的代码在这里:

   private void Equals_Click(object sender, EventArgs e)

    {
        var client = new RestClient("http://api.mathjs.org/v4/");
        var request = new RestRequest("/expr", Method.POST);
        var deger = txtCevap.Text; // txtCevap.Text is my calculator parameter
        var json = JsonConvert.SerializeObject(deger);
        request.AddParameter("application/json; charset=utf-8", json, ParameterType.RequestBody);
        request.RequestFormat = DataFormat.Json;
        IRestResponse response = client.Execute(request);

    }

在这个主题上您可以帮我吗?谢谢。

1 个答案:

答案 0 :(得分:0)

对于api.mathjs.org,您需要将string或string []与expr元素一起传递。请查看他们的requirements here.


    var client = new RestClient("http://api.mathjs.org/v4/");
    var request = new RestRequest("", Method.POST);
    var deger = @"{""expr"": ""2+1""}"; // txtCevap.Text is my calculator parameter

    request.AddJsonBody(deger);

    request.RequestFormat = DataFormat.Json;
    IRestResponse response = client.Execute(request);

响应对象的内容如下所示,您可以轻松地反序列化。他们总是有结果和错误。

"{\"result\":\"3\",\"error\":null}"

dynamic result = JsonConvert.DeserializeObject(response.Content);
string answer = result["result"].ToString()