RestRequest.AddFileBytes 发布损坏的文件

RestRequest.AddFileBytes posting corrupted files

我正在尝试 POST 使用 RestRequest.AddFileBytes 将文件映像到服务,但是当我这样做时,文件似乎已损坏。当我下载回来时,文件大小有轻微的偏差,并且根据文件类型,它可能看起来有错误的扩展名或无法解释(大概 b/c header 搞砸了)

当我尝试用 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;

        }

你不知道吗,就像发条一样,我用了 2 天的大部分时间敲了敲脑袋,然后发布了这个问题,几乎立即想出了如何让它发挥作用。我不会留下来,我知道为什么一个是对的,一个只是大部分是对的(这显然不够好)但是

我只需要改变

request.AddFileBytes(fileName, bytes, fileName, contentType);

request.AddParameter(contentType, bytes, ParameterType.RequestBody);