Posterior a consultar con especialistas en este tema, programadores de varias áreas y maestros hemos dado con la respuesta al dilema y la plasmamos en este post.
Simplemente agregue una línea simple antes de realizar su descarga:
string url = ...
string fileName = ...
WebClient wb = new WebClient();
wb.Headers.Add("User-Agent: Other"); //that is the simple line!
wb.DownloadFile(url, fileName);
Eso es todo.
403 también puede ser causado por problemas de TLS. Para verificar, debe verificar el texto del objeto WebException.Response.
catch (WebException ex)
if (ex.Response != null)
var response = ex.Response;
var dataStream = response.GetResponseStream();
var reader = new StreamReader(dataStream);
var details = reader.ReadToEnd();
Si es TLS, intente agregar esto a su código para forzar TLS1.2.
Para .net4:
ServicePointManager.SecurityProtocol = (SecurityProtocolType)3072;
Para .net4.5 o posterior:
ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12;
Tuve este problema al intentar descargar una imagen de la URL de un sitio de SharePoint. En mi caso configurando el user-agent
a Otro o en blanco en el encabezado no fue suficiente, tuve que configurar el user-agent
como sigue en su lugar:
client.Headers.Add("user-agent", " Mozilla/5.0 (Windows NT 6.1; WOW64; rv:25.0) Gecko/20100101 Firefox/25.0");
Esa solución vino de esta respuesta.
Comentarios y valoraciones del tutorial
Puedes añadir valor a nuestro contenido informacional cooperando tu experiencia en las reseñas.