RestRequest.AddFileBytes отправка поврежденных файлов - PullRequest
0 голосов
/ 27 февраля 2019

Я пытаюсь отправить файлы изображений в службу с помощью RestRequest.AddFileBytes, однако при этом файл кажется поврежденным.Когда я загружаю его обратно, размер файла слегка уменьшается, и в зависимости от типа файла он может иметь неправильное расширение или быть не интерпретируемым (предположительно, из-за того, что заголовок поврежден)

КогдаЯ пытаюсь сделать то же самое с Почтальоном, с файлом все в порядке, поэтому, похоже, что-то с тем, как я публикую файл.Пожалуйста, сообщите!

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;

        }

1 Ответ

0 голосов
/ 27 февраля 2019

Неужели вы этого не знаете, как по маслу, я ударил себя по голове большую часть двух дней, а затем отправил этот вопрос и почти сразу понял, как заставить его работать.Я бы не остался, потому что я знаю, почему кто-то прав, а кто-то в основном прав (что явно недостаточно), но

Мне просто нужно было изменить

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

до

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