semble que l'ajout de fichier à RestRequest ne fonctionne pas.
ResponseStatus est défini sur Erreur.
le message response.Error est "Les octets à écrire dans le flux dépassent la taille d'octets Content-Length spécifiée."
devez mettre à jour la longueur du contenu avant d'écrire dans le flux.
très probablement, les modifications apportées à Content-Length pour contourner .NET n'ont pas été testées avec des fichiers et l'en-tête n'est pas correctement défini. merci pour le rapport.
réessayez avec les dernières modifications de jonfuller et dites-moi si cela ne fonctionne toujours pas
je crois que c'est résolu. s'il vous plaît tester et notifier si non.
Problème retourné.
Dans la version 105.2.3 (actuellement stable sur nuget) avec une taille de fichier d'environ 3,5 Mo.
Après avoir rétrogradé à 105.1.0, tout fonctionne bien.
Il y a un post similaire
Je pense que cela est lié à un autre bogue #769 et #742, laissez-moi le corriger et nous verrons ce qui se passe. Quelque chose s'est passé avec la longueur du contenu.
Il y a des nouvelles à ce sujet ?
bosse - semble toujours être un problème
oui, j'ai aussi des problèmes avec ça, même revenir à 105.1.0 n'a pas aidé
Toujours pas résolu.
J'ai un problème similaire avec les nouvelles versions de restsharp
lors de l'utilisation
req.AddFile("call[picture_attributes][file]", (s) => imageStream.CopyTo(s), GetRandomFileName("jpg"), "image/jpeg");
Cela ne fonctionne pas dans les versions plus récentes
mais si j'utilise
req.AddFile("call[picture_attributes][file]", imageStream.GetBytes(), GetRandomFileName("jpg"), "image/jpeg");
avec
public static byte[] GetBytes(this Stream s)
{
using (var ms = new MemoryStream())
{
s.CopyTo(ms);
return ms.ToArray();
}
}
Ça marche.
donc utiliser un flux en utilisant imageStream.CopyTo ne fonctionne pas lors de l'envoi de byte[] fonctionne
C'était ma solution pour contourner ce bug:
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 n'est-il pas prêt pour .NET Core ? Je vois qu'il existe une directive de compilateur #if FRAMEWORK autour des méthodes AddFile sur l'interface. Je pense que la solution de contournement @bcabrera pourrait fonctionner pour mon cas d'utilisation, mais le test unitaire serait un défi.
Il n'y a pas encore de version pour .NET Core. Consultez les problèmes ouverts pour suivre les progrès.
Commentaire le plus utile
C'était ma solution pour contourner ce bug: