Pregunta

Está bien, así que esto es lo que estoy haciendo. Estoy haciendo una solicitud a un servidor para bajar un archivo. Hago esto haciendo una solicitud al sitio web para obtener la respuesta tal como lo haría normalmente, aunque recibo un error 403 que dice que no tengo permisos.

El problema es que cuando conecto la URL en Google Chrome, me redirecciono y el archivo que solicité se desactiva. He probado la URL en otros navegadores y obtuve el error 403.

¿Qué está haciendo Google Chrome que le permite evitar el error 403? He intentado usar el agente de usuario de Google Chrome, pero eso no me ayuda.

Ayuda

¿Fue útil?

Solución 3

Gracias por la ayuda. Ninguna de tus respuestas me ayudó directamente, pero gracias por intentarlo.

Mi programa intentaba extraer un archivo de un servidor. Descubrí cómo solucionar los problemas de autenticación y encontrar el archivo en el servidor mientras utilizaba Chrome. Resulta que su servicio web es más avanzado utilizando sesiones de usuario.

Básicamente, no tenía acceso a los comandos del servicio web, por lo que todo lo que podía hacer era usar las URL http básicas para obtener una respuesta predefinida. La url de los archivos que usé para obtener el archivo del servidor no era única, era dinámica dependiendo del navegador web / la sesión. Estaba usando el objeto HTTPRequest para obtener el archivo HTML para poder analizarlo. Con el archivo html lo analicé para averiguar el ID dinámico del archivo (pensé que era único). Luego lo adjuntaría al final de una URL. En Chrome sería redirigido y presentado con el mensaje de descarga. El problema era que necesitaba el objeto de navegador web cuando quería bajar el archivo. Sabiendo esto, utilicé el objeto de navegador web para obtener el ID de archivo, luego usé el mismo objeto de navegador web (Técnicamente las mismas sesiones según el servidor web) para desplegar el archivo.

Es bastante complicado. Básicamente, mi programa es un pequeño truco que proporciona una funcionalidad que el servidor está intentando bloquear.

Espero que esto les haya ayudado en cualquiera de sus futuros proyectos.

Otros consejos

Posiblemente el servidor web reconozca al agente de usuario de Chrome y permita que el archivo sea descargado por él, pero no por otros agentes de usuario. Configura tu WebRequest para usar las mismas cadenas y configuraciones de agente de usuario que Google Chrome; de ??manera predeterminada, podría estar usando la configuración de IE.

Editar: aquí hay instrucciones de MSDN sobre cómo establecer la cadena de agente de usuario WebRequest . Para averiguar el agente de usuario de cualquier navegador, ingrese esto en su barra de direcciones:

javascript:prompt('my user agent string is', navigator.userAgent);

El código de estado 403 indica el recurso que está intentando alcanzar está prohibido. Como en, no preguntes porque no lo entiendes. Esto difiere del código 401 en que se presenta un desafío de Autorización antes de que el servidor confirme la entrega del recurso.

Si bien esto podría ser una configuración programática, esto también podría explicarse por las restricciones de acceso al recurso tal como se configura a través del servidor web.

¿Puede verificar que el recurso descargado en Google Chrome es el recurso esperado al que intenta llegar?

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top