Parece que agregar un archivo a RestRequest no funciona.
ResponseStatus se establece como Error.
La respuesta. El mensaje de error es "Los bytes que se escribirán en la secuencia superan el tamaño de bytes de longitud de contenido especificado".
tiene que actualizar la longitud del contenido antes de escribir en la transmisión.
lo más probable es que los cambios en Content-Length para trabajar con .NET no se hayan probado con archivos y el encabezado no se haya configurado correctamente. gracias por el informe.
intente esto de nuevo con los últimos cambios de jonfuller y dígame si todavía no funciona
Creo que esto se resolverá. por favor pruebe y notifique si no.
El problema volvió.
En la versión 105.2.3 (actual estable en nuget) con un archivo de ~ 3,5 MB de tamaño.
Después de degradar a 105.1.0, todo funciona bien.
Hay una publicación similar
Creo que esto está relacionado con otro error # 769 y # 742, déjame arreglarlo y veremos qué sucede. Algo pasó con la longitud del contenido.
¿Hay alguna noticia sobre esto?
golpe - parece ser todavía un problema
sí, también tengo problemas con esto, incluso volver a 105.1.0 no ha ayudado
Aún no resuelto.
Tengo un problema similar con las versiones más recientes de restsharp
cuando usas
req.AddFile ("llamar [atributos_imagen] [archivo]", (s) => imageStream.CopyTo (s), GetRandomFileName ("jpg"), "imagen / jpeg");
No funciona en versiones más nuevas.
pero si uso
req.AddFile ("llamar [atributos_imagen] [archivo]", imageStream.GetBytes (), GetRandomFileName ("jpg"), "imagen / jpeg");
con
public static byte[] GetBytes(this Stream s)
{
using (var ms = new MemoryStream())
{
s.CopyTo(ms);
return ms.ToArray();
}
}
funciona.
por lo que el uso de una secuencia mediante imageStream.CopyTo no funciona mientras que el envío de bytes [] funciona
Esta fue mi solución para solucionar este error:
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 no está listo para .NET Core? Veo que hay una directiva de compilador #if FRAMEWORK alrededor de los métodos AddFile en la interfaz. Creo que la solución alternativa de @bcabrera podría funcionar para mi caso de uso, pero la prueba unitaria sería un desafío.
Todavía no hay una versión para .NET Core. Vea los problemas abiertos para monitorear el progreso.
Comentario más útil
Esta fue mi solución para solucionar este error: