【发布时间】:2018-04-15 22:31:06
【问题描述】:
我正在尝试使用 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 个键/值对。
我做错了什么?
【问题讨论】:
-
你有没有试过用 AddHeader 而不是 AddParameter 这两个?
-
为什么会这样? AddHeader 加到表头,AddParameter 也加到表头
-
不确定,只是想知道您是否尝试过。应该没什么区别,但是这种情况多久能阻止奇怪的事情发生?
-
还有什么格式的图片作为model.image?是 url,base64 吗?
-
根据the RestSharp documentation,这种行为似乎是正确的 - 它表示,鉴于这是一个 POST,GetOrPost 类型参数将呈现在正文中,除非请求是多部分/表单数据.