похоже, что добавление файла в RestRequest не работает.
ResponseStatus установлен как Ошибка.
сообщение response.Error: «Количество байтов, которые должны быть записаны в поток, превышает указанный размер Content-Length в байтах».
перед записью в поток необходимо обновить длину содержимого.
скорее всего, изменения Content-Length для работы с .NET не тестировались с файлами, и заголовок установлен неправильно. спасибо за отчет.
попробуйте еще раз с последними изменениями jonfuller и скажите мне, если это все еще не работает
я считаю, что это решено. пожалуйста, проверьте и сообщите, если нет.
Проблема вернулась.
В версии 105.2.3 (текущая стабильная на nuget) с размером файла ~ 3,5 МБ.
После перехода на 105.1.0 все работает нормально.
На StackOverflow есть похожий
Я думаю, что это связано с другой ошибкой № 769 и № 742, позвольте мне исправить это, и мы посмотрим, что произойдет. Что-то случилось с длиной контента.
Есть какие-нибудь новости по этому поводу?
шишка - кажется, все еще проблема
да, у меня тоже проблемы с этим, даже возврат к 105.1.0 не помог
Все еще не решено.
У меня аналогичная проблема с более новыми версиями restsharp
когда используешь
req.AddFile ("вызов [атрибуты изображения] [файл]", (s) => imageStream.CopyTo (s), GetRandomFileName ("jpg"), "изображение / jpeg");
Не работает в более новых версиях
но если я использую
req.AddFile («вызов [атрибуты изображения] [файл]», imageStream.GetBytes (), GetRandomFileName («jpg»), «изображение / jpeg»);
с участием
public static byte[] GetBytes(this Stream s)
{
using (var ms = new MemoryStream())
{
s.CopyTo(ms);
return ms.ToArray();
}
}
оно работает.
поэтому использование потока с помощью imageStream.CopyTo не работает, а отправка byte [] работает
Это было моим решением обойти эту ошибку:
var req = GetRestRequest("Upload", Method.POST, null);
//req.AddFile("file",
// (s) => {
// var stream = input(imageObject);
// stream.CopyTo(s);
// stream.Dispose();
// },
// fileName, contentType);
req.Files.Add(new FileParameter {
Name = "file",
Writer = (s) => {
var stream = input(imageObject);
stream.CopyTo(s);
stream.Dispose();
},
FileName = fileName,
ContentType = contentType,
ContentLength = contentLength
});
RestRequest.AddFile не готов для .NET Core? Я вижу, что для методов AddFile интерфейса есть директива компилятора #if FRAMEWORK. Я думаю, что обходной путь варианта использования, но модульный тест будет проблемой.
Пока нет версии для .NET Core. Просматривайте открытые вопросы, чтобы следить за прогрессом.
Самый полезный комментарий
Это было моим решением обойти эту ошибку: