vivo transmitir programas por para pantalla desde como .net vb.net streaming stream

.net - programas - transmitir en vivo la pantalla de mi pc



¿Cómo descargo una página web en una transmisión en.NET? (3)

Sé que esta debería ser una pregunta básica, pero estoy golpeando una pared de ladrillos. Estoy buscando ir a una URL / URI, descargo la cadena resultante como si hubiera abierto un archivo y luego lo saqué a una variable String.

He estado hablando con IO.Stream y Net.httpxxx, pero no he logrado que los elementos se alineen correctamente.

Me aparece "el formato de la ruta dada no es compatible" al abrir la página en la transmisión estándar, porque no está en el sistema de archivos local ... ese bit que entiendo, el bit que no entiendo es ... ¿cómo puedo lograr el equivalente de:

Public Function GetWebPageAsString(pURL As String) As String Dim lStream As IO.StreamReader = New System.IO.StreamReader(pURL) Return lStream.ReadToEnd End Function


Esta función descarga cualquier URI a un archivo. Podrías adaptarlo fácilmente para ponerlo en una cadena var:

public static int DownloadFile(String remoteFilename, String localFilename, bool enforceXmlSafe) { // Function will return the number of bytes processed // to the caller. Initialize to 0 here. int bytesProcessed = 0; // Assign values to these objects here so that they can // be referenced in the finally block Stream remoteStream = null; Stream localStream = null; WebResponse response = null; // Use a try/catch/finally block as both the WebRequest and Stream // classes throw exceptions upon error try { // Create a request for the specified remote file name WebRequest request = WebRequest.Create(remoteFilename); if (request != null) { // Send the request to the server and retrieve the // WebResponse object response = request.GetResponse(); if (response != null) { // Once the WebResponse object has been retrieved, // get the stream object associated with the response''s data remoteStream = response.GetResponseStream(); // Create the local file if (localFilename != null) localStream = File.Create(localFilename); else localStream = new MemoryStream(); // Allocate a 1k buffer byte[] buffer = new byte[1024]; int bytesRead; // Simple do/while loop to read from stream until // no bytes are returned do { // Read data (up to 1k) from the stream bytesRead = remoteStream.Read(buffer, 0, buffer.Length); // Write the data to the local file localStream.Write(buffer, 0, bytesRead); // Increment total bytes processed bytesProcessed += bytesRead; } while (bytesRead > 0); } } } catch (Exception e) { Console.WriteLine(e.Message); } finally { // Close the response and streams objects here // to make sure they''re closed even if an exception // is thrown at some point if (response != null) response.Close(); if (remoteStream != null) remoteStream.Close(); if (localStream != null) localStream.Close(); } // Return total bytes processed to caller. return bytesProcessed; }


La respuesta corta, en C #, se parece a

using(System.Net.WebClient client = new System.Net.WebClient()) { string html = client.DownloadString("http://www.google.com"); }


WebClient.OpenRead () puede ser lo que estás buscando.

Muestra de la página de MSDN vinculada anteriormente:

Dim uriString as String uriString = "http://www.google.com" Dim myWebClient As New WebClient() Console.WriteLine("Accessing {0} ...", uriString) Dim myStream As Stream = myWebClient.OpenRead(uriString) Console.WriteLine(ControlChars.Cr + "Displaying Data :" + ControlChars.Cr) Dim sr As New StreamReader(myStream) Console.WriteLine(sr.ReadToEnd()) myStream.Close()