Cómo descargar un archivo CSV en el sitio web en ASP.NET
-
16-10-2019 - |
Pregunta
En mi página web Estoy intentando descargar un archivo CSV que viene de Yahoo. Contiene algunos datos.
Estoy utilizando el código indicado a continuación para descargar CSV.
Problema:
Quiero descargar y obtener todos los datos desde CSV de Yahoo, pero todo el CSV no está recibiendo creado de mi lado.
Sólo una parte de los datos se copian. Así CSV no se descarga con todos sus datos.
He intentado aumentar el tamaño del búfer, pero eso no ayuda
datos en formato CSV de Yahoo es como se muestra a continuación en la pantalla. Estos son los datos Quiero descargar
Los datos que tengo en CSV creado, al descargar CSV de la misma Yahoo es como se muestra a continuación.
código que estoy utilizando para descargar el archivo CSV de Yahoo
HttpWebRequest wr = (HttpWebRequest)WebRequest.Create("http://download.finance.yahoo.com/d/quotes.csv?s=^DJI+^N225+^GSPC+^GDAXI+^FCHI+^HSI+^IXIC+^FTSE&f=l1d14n");
HttpWebResponse ws = (HttpWebResponse)wr.GetResponse();
Stream str = ws.GetResponseStream();
inBuf = new Byte[10000000];
int bytesToRead = Convert.ToInt32(inBuf.ToString().Length);
int bytesRead=0;
while(bytesToRead>0)
{
int n = str.Read(inBuf,bytesRead,bytesToRead);
if(n==0)
{
break;
}
bytesRead += n;
bytesToRead -= n;
}
FileStream fstr = new FileStream("C:\\VSS Working Folder\\20th Jan 11 NewHive\\NewHive\\CSV\\new.csv", FileMode.OpenOrCreate, FileAccess.Write);
fstr.Write(inBuf,0,bytesRead);
str.Close();
fstr.Close();
return "CSV Downloaded Successfully!";
¿Qué podría estar mal?
Solución
inBuf.ToString()
le da "System.Byte []" y la longitud de esa cadena es 13. Por lo que sólo está ahorrando 13 caracteres que sólo le dará 10274.52,"1/2
desde el archivo descargado.
Se puede obtener la longitud usando inBuf.Length
. Tenga en cuenta que Length devuelve un int por lo que no es necesario fundido a un int.