Necesito descargar un archivo de texto de Internet usando C#. El tamaño del archivo puede ser bastante grande y la información que necesito siempre está dentro de los primeros 1000 bytes. es posible?Descargar los primeros 1000 bytes
Respuesta
Robo de here.
string GetWebPageContent(string url)
{
string result = string.Empty;
HttpWebRequest request;
const int bytesToGet = 1000;
request = WebRequest.Create(url) as HttpWebRequest;
//get first 1000 bytes
request.AddRange(0, bytesToGet - 1);
// the following code is alternative, you may implement the function after your needs
using (WebResponse response = request.GetResponse())
{
using (Stream stream = response.GetResponseStream())
{
byte[] buffer = new byte[1024];
int read = stream.Read(buffer, 0, 1000);
Array.Resize(ref buffer, read);
return Encoding.ASCII.GetString(buffer);
}
}
}
(Editado conforme a lo solicitado en los comentarios ...;))
Sugiero reemplazar el 'ReadToEnd' con una lectura de (como máximo) 1000 caracteres en caso de que el servidor ignore la solicitud de rango. – Richard
@Richard: Eso no sería necesario ya que se agregó un encabezado de rango a la solicitud. La respuesta será como máximo 1000 caracteres. –
@Jeff: como decía mi comentario "en caso de que el servidor ignore la solicitud de rango" ya que el encabezado 'Rango' es * opcional * para el servidor y se puede ignorar. – Richard
que hice esto como una respuesta a su pregunta más reciente. También puede poner el encabezado de rango si lo desea, pero lo excluí.
string GetWebPageContent(string url)
{
//string result = string.Empty;
HttpWebRequest request;
const int bytesToGet = 1000;
request = WebRequest.Create(url) as HttpWebRequest;
var buffer = new char[bytesToGet];
using (WebResponse response = request.GetResponse())
{
using (StreamReader sr = new StreamReader(response.GetResponseStream()))
{
sr.Read(buffer, 0, bytesToGet);
}
}
return new string(buffer);
}
Técnicamente, esto puede obtener hasta 2000 bytes si el StreamReader "piensa" que vuelve a ser unicode. Mi edición (ver arriba) por otro lado obliga a la codificación, que también puede estar mal. Rama necesita aclarar el requisito, supongo. – Lucero
- 1. ¿Quitar los primeros 16 bytes?
- 2. Metaetiqueta no en los primeros 1024 bytes
- 3. Eliminando los primeros 16 bytes de una matriz de bytes
- 4. ¿Cómo puedo ver los primeros dos bytes en un InputStream?
- 5. fread Sólo los primeros 5 bytes del archivo .PNG
- 6. Lea lo que necesite, ¿cómo leer los primeros 256 bytes del archivo grande en línea sin descargar?
- 7. Comprima aproximadamente 1000 bytes de texto para una QueryString
- 8. Cómo comparar primeros N bytes de archivos binarios en Linux
- 9. ¿Cuál es el mejor método para obtener Int32 de los primeros cuatro bytes de GUID?
- 10. Eliminar los primeros bytes de un archivo de acceso aleatorio en Java
- 11. Cómo obtener solo los primeros diez bytes de un archivo binario
- 12. ¿por qué 24 * 60 * 60 * 1000 * 1000 dividido por 24 * 60 * 60 * 1000 no es igual a 1000 en Java?
- 13. MySQL omita los primeros 10 resultados
- 14. ¿Cómo obtener los primeros X elementos?
- 15. SerializeJSON solo devolviendo los primeros dos registros
- 16. Obtenga los primeros 100 elementos de OrderedDict
- 17. Devolviendo los primeros N caracteres de una cadena Unicode
- 18. # 1071 - La clave especificada era demasiado larga; la longitud máxima de la clave es 1000 bytes
- 19. "La clave especificada era demasiado larga; la longitud máxima de la clave es 1000 bytes"
- 20. C# - Lista - eliminar todos los elementos pero NO los primeros
- 21. XPath - Todos los hermanos siguientes excepto los primeros elementos específicos
- 22. Primeros pasos con ColdFusion?
- 23. ¿Cómo obtengo eficientemente un subconjunto de una matriz de bytes (primeros N elementos) en C#?
- 24. ¿Los archivos de 0 bytes son realmente 0 bytes?
- 25. Recordset solo devuelve 1000 registros
- 26. Primeros pasos con sockets web
- 27. ¿Puedo clonar los bytes de un objeto C++, sobrescribir los bytes originales y luego copiar esos bytes?
- 28. Dónde puedo descargar los temas de jQueryMobile
- 29. ¿Dónde puedo descargar los binarios de Subversion?
- 30. cómo eliminar los primeros 3 caracteres de nsstring?
¿Es posible? Descargar archivos de texto? Aprenda a hacer preguntas: http://tinyurl.com/so-hints – Oded
+ 1 Esa debería ser la página oficial de Preguntas frecuentes. – Marko
@Oded: ¿Qué crees que falta en la pregunta? –