我正在尝试使用 RestRequest.AddFileBytes 将图像文件发布到服务,但是当我这样做时,文件似乎已损坏。当我下载回来时,文件大小稍有偏差,并且根据文件类型,它可能看起来有错误的扩展名或无法解释(大概是因为标头混乱了)
当我尝试用 Postman 做同样的事情时,它的文件没问题,所以这似乎与我发布文件的方式有关。请指教!
private static bool AddPageBytes(string user, string password, string documentId, string fileName, string contentType, byte[] bytes)
{
System.Console.WriteLine($"AddPageBytes documentId:{documentId} fileName:{fileName} contentType:{contentType} bytes:{bytes.Length}");
var client = new RestClient(BASE_URL);
var request = new RestRequest("v1/document/{id}/page", Method.POST);
request.AddUrlSegment("id", documentId);
request.AddHeader("X-IntegrationServer-Username", user);
request.AddHeader("X-IntegrationServer-Password", password);
request.AddHeader("Content-Type", "application/octet-stream");
request.AddHeader("X-IntegrationServer-FileSize", bytes.Length.ToString());
request.AddHeader("X-IntegrationServer-Resource-Name", fileName);
request.AddFileBytes(fileName, bytes, fileName, contentType);
var response = client.Execute(request);
return response.IsSuccessful;
}
Run Code Online (Sandbox Code Playgroud)
你难道不知道吗,就像发条一样,我在两天的大部分时间里敲着头,然后发布了这个问题,几乎立即就想出了如何让它发挥作用。我不会留下来,我知道为什么一个是正确的,而一个只是大部分正确(这显然不够好),但是
我只需要改变
request.AddFileBytes(fileName, bytes, fileName, contentType);
Run Code Online (Sandbox Code Playgroud)
到
request.AddParameter(contentType, bytes, ParameterType.RequestBody);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1958 次 |
| 最近记录: |