【问题标题】:Restsharp post method is not working, Web api post method receiving null valuesRestsharp post 方法不起作用,Web api post 方法接收空值
【发布时间】:2020-01-02 06:46:30
【问题描述】:

我在 MVC 中调用 Web API 发布方法 Restsharp C#。下面是 web api 和控制器方法的代码。

API方法

public class GrowthController : ApiController
{
    private readonly IEncoderDecoder encoderDecoderRepository;
    public GrowthController(IEncoderDecoder _EncoderDecoderRepository)
    {
        this.encoderDecoderRepository = _EncoderDecoderRepository;
    }
    [HttpPost]
    public object EncodeDecodeString([FromBody]string data)
    {
        // data value is coming null.
    }
}

调用 Web API。

var clientR = new RestClient("https://service.testing.com/Api/Growth/EncodeDecodeString");
    var request = new RestRequest();
    var body = new
    {
        data = "host_environment",
        submit = "Password"
    };
    request.AddJsonBody(body);
    request.Method = Method.POST;

    var response1 = clientR.Execute(request);
    var content = response1.Content;
}

【问题讨论】:

  • 请求工作正常,您可以在 Fiddler 中轻松检查。您的控制器方法需要接受具有 datasubmit 属性的类型的对象参数,并且您需要注意序列化配置匹配。如果您使用 System.Text.Json,请记住它是区分大小写的。

标签: c# asp.net-mvc asp.net-web-api restsharp


【解决方案1】:

我认为您的客户缺少此标头:

request.AddHeader("Content-type", "application/json");

这很可能会解决问题。

【讨论】:

  • 感谢您的建议,但它对我不起作用。我尝试了相同但仍然接收空值的 API 方法。
  • AddJsonBody 正确设置内容类型。无需手动设置标题。
猜你喜欢
  • 1970-01-01
  • 2013-08-14
  • 2018-02-16
  • 2015-08-07
  • 1970-01-01
  • 1970-01-01
  • 2023-04-04
  • 2012-05-08
  • 2016-11-20
相关资源
最近更新 更多