HttpWebRequest.UserAgent está configurado, pero no funciona en respuesta

Estoy desarrollando una aplicación para Windows Phone 7.1.1

Estoy usando HttpWebRequest para obtener el código HTML de un sitio web El problema es que siempre se obtiene la versión de "Escritorio" del código HTML Después de Google, descubro que está controlado por la cadena UserAgent

Entonces, puse el UserAgent of HttpWebRequest

Pero aún no se obtiene la versión "Móvil" del código HTML

aqui esta mi codigo

HttpWebRequest request = (HttpWebRequest)WebRequest.Create(new Uri(link, UriKind.Absolute));
        request.UserAgent = "Mozilla/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident/5.0; IEMobile/9.0)";
        request.BeginGetResponse(new AsyncCallback(ResponseReady), request);

Este es el código para ResponseReady

private void ResponseReady(IAsyncResult asyncResult)
    {
        try
        {
            HttpWebRequest request = asyncResult.AsyncState as HttpWebRequest;
            HttpWebResponse response = (HttpWebResponse)request.EndGetResponse(asyncResult);
            Stream responseStream = response.GetResponseStream();
            StreamReader reader = new StreamReader(responseStream, Encoding.UTF8);

            HtmlDocument htmlDocument = new HtmlDocument();

            string result = reader.ReadToEnd();

blah blah blah

La respuesta es siempre la misma que no es UserAgent en absoluto (versión de escritorio)

preguntado el 31 de diciembre de 12 a las 15:12

Qué exactamente ¿Qué quiere decir con "La respuesta es siempre la misma que no es UserAgent en absoluto (versión de escritorio)"? La frase no tiene sentido. También puede encontrar que la versión del sitio servido depende de más que el agente de usuario. Depende del sitio web individual, y no has dado ninguna indicación de eso... -

¿Está seguro de que el servidor está configurado para devolver una versión móvil para ese UserAgent? -

¿De qué sitio web está tratando de leer la información? Sabiendo eso, podemos ver cómo responde cuando lo probamos. -

La cadena de resultado es la misma que request.UserAgent no está configurado (comente esa línea de código) El sitio web es un sitio web para adultos, por lo que tal vez no pueda publicarlo aquí. Pero probé con Google Chrome (con User-Agent Switcher Extension, pegué la misma cadena de UserAgent en él) y el sitio devolvió lo mismo que uso mi Windows Phone para navegar. -

Algunos sitios usan m.blahblahblah.com para la versión móvil, algunos sitios usan blahblahblah.com/mobile para la versión móvil. Esto no es que escenarios. El sitio usa la misma dirección para ambos. Navegar en el escritorio y en el móvil me da diferentes diseños, enlaces y todo lo demás:

1 Respuestas

mis problemas estan resueltos

Simplemente use el control WebViewer / WebBrowser para cargar el enlace. Luego use OuterHtml para obtener el código HTML de ese sitio web. Realmente simple Puede establecer la visibilidad de ese control en Contraer para ocultarlo en la pantalla

Respondido el 13 de enero de 13 a las 08:01

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.