我正在使用RestSharp作为REST API的问题,我需要使用我正在处理的项目.我需要发出的请求分为三个部分:头API API密钥,要上传的文件,以及一堆

JSON格式的数据. API要求使用表单字段名称“数据”发送数据部分.由于某种原因导致问题,因为它在请求正文中的字段“数据”命名.

我的代码如下:

var request = new RestRequest(UPLOAD_DOC_URLSEGMENT,Method.POST)

{

RequestFormat = DataFormat.Json,AlwaysMultipartFormData = true,JsonSerializer = new RestSharpJsonDotNetSerializer(customSerializer)

};

if (doc is DocA)

request.AddParameter("data",doc as DocA,ParameterType.RequestBody);

//request.AddBody(doc as DocA);

else

request.AddParameter("data",doc as DocB,ParameterType.RequestBody);

//request.AddBody(doc as DocB);

request.AddFile("file",doc.File.FullName);

你可以看到我已经尝试使用request.AddBody(doc)方法和request.AddParameter(name,object,type)方法.他们似乎都没有正确发送数据,因为我收到来自服务器的响应,表示丢失了所需的参数.使用fiddler我可以看到二进制数据,但从来没有这两种方法的JSON数据.我已经经历了RestSharp文档,但是我找不到任何允许我为表单数据体指定一个特定“字段”名称作为“数据”的东西,这是我认为导致我遇到的问题.我在这里做错了什么?

编辑:进一步检查与fiddler似乎没有添加我的JSON数据到HTTP请求的正文.但是,在上传之前有一个断点(执行命令),我可以在参数列表(和文件列表)中看到所有序列化的内容.当用Fiddler检查时,我看到文件二进制数据,然后是一个multipart / form-data边界,然​​后没有.我认为这是我的数据应该是…

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐