Domanda

Sto usando RestSharp in un progetto mono per caricare alcuni file e ho notato che quando viene caricato un file di grandi dimensioni, la memoria cresce sostanzialmente.

Guardando Codice sorgente RESSHARP Ho notato che FileParameter si aspetta un array di byte, il che significa che sta davvero caricando il file in memoria.

Sto facendo qualcosa di sbagliato? C'è un modo per il riposo non fare questo? Potrei caricare file davvero grandi, quindi caricarli dalla memoria non è un'opzione.

Qualsiasi aiuto (incluso dirmi di utilizzare un'altra libreria HTTP disponibile su Mono) è il benvenuto.

È stato utile?

Soluzione 2

E ho rinunciato dopo aver trovato questa linea, quindi i corpi di richiesta vengono sempre caricati in memoria, il che è sfortunato, quindi ho creato una soluzione semplice per eseguire caricamenti di file in base al codice da questa domanda e dal debug del Libreria Apache HttpClient.

Nel caso in cui qualcuno sia interessato, la fonte è disponibile qui.

Altri suggerimenti

Utilizzare il AddFile(name, writer, filename) sovraccarico.

Per il writer parametro, passare un Action<Stream> Ciò scrive direttamente al flusso del corpo della richiesta. Non chiudere il flusso.

Ecco un esempio per scrivere sullo streaming.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top