使用 RestSharp 提交 POST 请求,将值添加到 header

and*_*ewb 0 c# restsharp

我正在尝试使用 C# 中的 RestSharp 向 API 提交一些数据,似乎我的所有参数都添加到 Headers 集合中 - 或者这就是它们在 VS 中的编目方式。

这是我的代码

var client = new RestClient("https://api.com");
var request = new RestRequest("/recognize", Method.POST);

request.AddHeader("app_id", "");
request.AddHeader("app_key", "");
request.AddHeader("Content-Type", "multipart/form-data");

request.AddParameter("gallery_name", model.gallery_name);
request.AddParameter("image", model.image);

var response = client.Execute(request);
Run Code Online (Sandbox Code Playgroud)

从 API 返回的错误表示请求缺少 gallery_name 和 image 参数,但查看它们在 Headers 集合中的请求对象。

我可以在 Postman 中进行调用,其中方法设置为 Post,Body 设置为 form-data,并列出 2 个键/值对。

我究竟做错了什么?

Ant*_*ken 6

在您的问题中,您说“我可以在 Postman 中拨打电话......”。

通常,如果 Postman 请求成功,那么 Postman 生成的 RestSharp 代码应该可以工作,如果 RestSharp 库中没有可能导致问题的未解决问题。

很难从这里调试和重现问题,但我可以提供以下内容供您检查。

检查这个:

如果您的 Postman 请求有效并且成功,请检查 Postman 生成的 Restsharp 代码:

  1. 点击“代码”

第 1 步:从 Postman 获取生成的代码

  1. 在“C# (RestSharp)”的组合框中选择

查看邮递员请求中的 Restsharp 代码

  1. 尝试您在窗口中看到的 RestSharp 代码,如果代码不起作用,请检查此URL以了解已知问题。

旁注:如果您看到可能导致错误的已知问题,请尝试使用先前版本的 RestSharp 或alpha 版本进行测试

我希望您现在可以进一步调查和调试问题。

(我也遇到过类似的问题,通过这种调查调试的方式成功解决了)