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

时间:2018-04-10 22:53:43

标签: 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);

来自API的错误表明请求缺少gallery_name和image参数,但查看了Headers集合中的请求对象。

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

我做错了什么?

1 个答案:

答案 0 :(得分:4)

在你的问题中,你说"我可以在邮差中打电话......"。

通常如果Postman请求成功,那么如果RestSharp库中没有可能导致您的问题的未解决问题,那么Postman生成的RestSharp代码是否有效。

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

检查一下:

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

  1. 点击"代码"
  2. Step 1: Get the generated code from Postman

    1. 在组合框中选择" C#(RestSharp)"
    2. See the Restsharp code from the postman request

      1. 尝试在窗口中看到的RestSharp代码,如果代码无效,请检查此URL是否存在已知问题。
      2. 旁注:如果您发现可能导致错误的已知问题,请尝试使用以前版本的RestSharp或alpha version进行测试。

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

        (我有类似的问题并通过这种调查和调试方式解决了问题)