parece que adicionar arquivo ao RestRequest não funciona.
ResponseStatus é definido como Erro.
a mensagem response.Error é "Bytes a serem gravados no fluxo excedem o tamanho de bytes Content-Length especificado."
tem que atualizar o comprimento do conteúdo antes de gravar no fluxo.
muito provavelmente as alterações em Content-Length para contornar o .NET não foram testadas com arquivos e o cabeçalho não foi definido corretamente. obrigado pelo relatório.
tente novamente com as últimas alterações de Jonfuller e diga-me se ainda não está funcionando
Eu acredito que isso está resolvido. por favor teste e notifique se não.
Problema retornado.
Na versão 105.2.3 (atualmente estável no nuget) com tamanho de arquivo de ~ 3,5 MB.
Depois de fazer o downgrade para 105.1.0, tudo funciona bem.
Há um post semelhante
Acho que isso está relacionado a outro bug # 769 e # 742, deixe-me consertá-lo e veremos o que acontece. Algo aconteceu com o comprimento do conteúdo.
Alguma novidade sobre isso?
colisão - parece ainda ser um problema
Sim, eu também tenho problemas com isso, mesmo voltar para 105.1.0 não ajudou
Ainda não resolvido.
Estou tendo um problema semelhante com as versões mais recentes do restsharp
ao usar
req.AddFile ("chamar [imagens_atributos] [arquivo]", (s) => imageStream.CopyTo (s), GetRandomFileName ("jpg"), "imagem / jpeg");
Não funciona nas versões mais recentes
mas se eu usar
req.AddFile ("chamar [imagem_atributos] [arquivo]", imageStream.GetBytes (), GetRandomFileName ("jpg"), "imagem / jpeg");
com
public static byte[] GetBytes(this Stream s)
{
using (var ms = new MemoryStream())
{
s.CopyTo(ms);
return ms.ToArray();
}
}
funciona.
então, usar um stream usando imageStream.CopyTo não funciona enquanto o envio de byte [] funciona
Esta foi a minha solução para contornar este 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
});
O RestRequest.AddFile não está pronto para o .NET Core? Vejo que há uma diretiva de compilador #if FRAMEWORK em torno dos métodos AddFile na interface. Acho que a solução alternativa @bcabrera poderia funcionar para meu caso de uso, mas o teste de unidade seria um desafio.
Ainda não existe uma versão para o .NET Core. Veja os problemas em aberto para monitorar o progresso.
Comentários muito úteis
Esta foi a minha solução para contornar este bug: