【问题标题】:Sending parameter request with RestSharp in C#. Getting Error: Required field \"expr\" missing in JSON body在 C# 中使用 RestSharp 发送参数请求。出现错误:JSON 正文中缺少必填字段“expr”
【发布时间】:2019-12-06 15:16:06
【问题描述】:

我正在 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);

    }

你能帮我解决这个问题吗?谢谢。

【问题讨论】:

    标签: c# restsharp webapi


    【解决方案1】:

    对于 api.mathjs.org,您需要使用 expr 元素传递 string 或 string[]。请查看他们的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()
    

    【讨论】:

    • deger 是一个字符串值,如何添加请求?
    • 对于简单的文本,request.AddParameter("application/json", deger, ParameterType.RequestBody);
    • 另外,从出现在单词 expr 之前的 restrequest 中删除斜线
    • 当我申请时,我得到了这个错误:"\n\n\n\n错误\n\n\n
      内部服务器错误
      \n\n\ n"
    • @gözdeyıldız 更新了我的答案以做你正在寻找的东西。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-02-11
    • 1970-01-01
    • 2022-06-30
    • 2014-08-02
    • 2012-04-02
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多