You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Postman生成的C#(RestSharp)文件上传代码报错求助

解决Postman生成的RestSharp代码上传文件返回500内部服务器错误的问题

这种情况我碰到过好多次,Postman测试正常但代码跑失败,大多是请求细节和Postman不一致导致的,咱们一步步排查:

1. 先修正URL里的转义问题

你提供的代码里URL用了&作为参数分隔符,这是HTML转义后的字符,但RestSharp会把它当成参数的一部分,而不是分隔符。比如原来的aboutType=Candidate&referenceID=1314180会被解析成aboutType的值是Candidate&referenceID=1314180,这显然不是服务器期望的。

把URL里的&全部替换成&,另外注意referenceID=1314180%20里的%20(空格),如果Postman里的参数没有这个空格,也一起去掉,修正后的URL应该是:

var client = new RestClient("https://login.mydgsi.ca/WebAPI/Attachment?aboutType=Candidate&referenceID=1314180&attachmentTypeID=Resume&Name=your-file-name");

2. 确保文件上传的请求构造正确

Postman上传文件用的是multipart/form-data格式,RestSharp需要正确模拟这个请求:

  • 确认文件字段名和Postman里的一致(比如Postman里你选的文件字段是file还是attachment,必须完全匹配)
  • 正确设置文件的Content-Type(比如PDF是application/pdf,Word是application/vnd.openxmlformats-officedocument.wordprocessingml.document)
  • 如果API需要身份验证,别忘了添加对应的请求头(比如Bearer Token)

完整的示例代码大概是这样:

// 初始化客户端,用修正后的URL
var client = new RestClient("https://login.mydgsi.ca/WebAPI/Attachment?aboutType=Candidate&referenceID=1314180&attachmentTypeID=Resume&Name=my-resume.pdf");
var request = new RestRequest(Method.POST);

// 添加必要的请求头,比如Authorization(如果需要的话)
request.AddHeader("Authorization", "Bearer your-auth-token-here");
request.AddHeader("Accept", "application/json");

// 添加文件,第一个参数是字段名,第二个是文件路径,第三个是Content-Type
request.AddFile("file", @"C:\Users\You\Documents\resume.pdf", "application/pdf");

// 执行请求并查看响应
IRestResponse response = client.Execute(request);
Console.WriteLine(response.Content);
Console.WriteLine(response.StatusCode);

3. 对比Postman和代码的请求详情

这是最关键的一步,用工具捕获两个请求的完整内容,对比差异:

  • 用Fiddler或者Charles抓包,看代码发送的请求和Postman发送的请求,在请求头、URL参数、请求体上有没有区别
  • 检查RestSharp是否自动添加了多余的头,或者漏掉了Postman里的必要头(比如User-Agent)
  • 确认multipart/form-data的boundary是否正确,文件内容的编码是否一致

4. 查看服务器端错误日志

如果能拿到服务器的日志,直接看500错误的具体堆栈信息,比如是参数解析失败、文件大小超限、权限不足还是其他问题,这能直接定位根源。

按照上面的步骤排查,基本就能解决问题了,我之前碰到过类似的情况,就是URL转义字符和文件字段名不匹配导致的。

内容的提问来源于stack exchange,提问作者Jason

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.26 10:06:13