Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

260
Visualizações
Código de respuesta 403: solicitud bloqueada al usar las API de configuración de Cowin

Solo estaba tratando de generar una alerta de vacuna covid usando Cowin Setu API (India) en nodejs. Pero me enfrento a algo extraño, cada vez que presiono obtener solicitud, recibo un código de respuesta 403 de cloudfront que dice "Solicitud bloqueada", pero lo mismo funciona tanto desde el cartero como desde el navegador. Por favor, ayúdame en esto

Obteniendo este error: -

 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <HTML><HEAD><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1"> <TITLE>ERROR: The request could not be satisfied</TITLE> </HEAD><BODY> <H1>403 ERROR</H1> <H2>The request could not be satisfied.</H2> <HR noshade size="1px"> Request blocked. We can't connect to the server for this app or website at this time. There might be too much traffic or a configuration error. Try again later, or contact the app or website owner. <BR clear="all"> If you provide content to customers through CloudFront, you can find steps to troubleshoot and help prevent this error by reviewing the CloudFront documentation. <BR clear="all"> <HR noshade size="1px"> <PRE> Generated by cloudfront (CloudFront) Request ID: Q1RZ94qgFp6AjUUKE4e9urMB85VejcqMbaJO6Y8Xq5Qp4kNjDBre9A== </PRE> <ADDRESS> </ADDRESS> </BODY></HTML>

Aquí está mi código nodejs:

 var express = require("express"); var app = express(); var bodyParser = require("body-parser"); const axios = require("axios"); const { Telegram } = require("telegraf"); const fetch = require("node-fetch"); var cors = require('cors'); var request=require('request'); const tg = new Telegram(process.env.BOT_TOKEN); const bot = new Telegram(process.env.BOT_TOKEN, { polling: true }); //bot.start((ctx) => ctx.reply('Welcom to Covid Vaccine Finder')) /*bot.hears("about", ctx => { ctx.reply("Hey, I am CoviBot!"); }); bot.launch();*/ app.use(bodyParser.json()); app.use(cors()); app.use( bodyParser.urlencoded({ extended: true }) ); app.get("/", function(req, res) { res.send("Welcom to Covid Vaccine Finder"); }); app.get("/test", function(req, res, next) { var d = new Date(); var options = { year: "numeric", month: "2-digit", day: "2-digit" }; var date = String(d.toLocaleDateString("en", options)); date = date.replace(/\//g, "-"); console.log(date); const URL = "https://cdn-api.co-vin.in/api/v2/appointment/sessions/public/findByPinpincode=110088&date=13-05-2021"; var options = { url: URL, method: 'GET', headers: { 'Accept-Encoding': 'gzip, deflate', 'Accept-Language': 'en-GB,en;q=0.8,en-US;q=0.6,hu;q=0.4', 'Cache-Control': 'max-age=0', Connection: 'keep-alive', Host: 'cdn-api.co-vin.in', 'User-Agent': 'request', } }; request(options,function(err,res,body){ let json = body; console.log(json); }); const txt = "Finding vaccine centres for you...."; //tg.sendMessage(process.env.GROUP_ID, txt); res.send(txt); }); // Finally, start our server app.listen(process.env.PORT, function() { console.log("Covid app listening on port 3000!"); });

Espero que este problema se solucione

Gracias

over 4 years ago · Santiago Trujillo
8 Respostas
Responde à pergunta

0

Usar lo siguiente

 var options = { url: URL, method: 'GET', headers: { Host: 'cdn-api.co-vin.in', 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4430.93 Safari/537.36' } };
over 4 years ago · Santiago Trujillo Relatório

0

Agregué un encabezado user-agent a la solicitud para que la API reconozca que mi solicitud proviene de un navegador, en lugar de un script.

 headers = { 'user-agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Safari/537.36', } url = "https://cdn-api.co-vin.in/api/v2/appointment/sessions/public/calendarByDistrict?district_id=303&date="+date response = requests.get(url, headers=headers)
over 4 years ago · Santiago Trujillo Relatório

0

Debe usar la API de identificador de agente de usuario. Consulte esto https://devcenter.heroku.com/articles/useragentidentifier#using-with-python

over 4 years ago · Santiago Trujillo Relatório

0

Debe realizar su solicitud en el siguiente formato, adjunto un formato de muestra para la API de metadatos de estados:

curl --ubicación --solicitud OBTENER 'https://cdn-api.co-vin.in/api/v2/admin/ubicación/estados' --header 'Aceptar-Idioma: hi_IN' --header 'Aceptar: aplicación /json' --header 'User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, como Gecko) Chrome/90.0.4430.93 Safari/537.36'

over 4 years ago · Santiago Trujillo Relatório

0

Pruebe estos encabezados. Funcionaron para mí en el servidor local (no en producción)

 let options = { headers: { "user-agent": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4430.93 Safari/537.36", }, };

Estos no funcionarán en producción porque las API de Cowin están geovalladas y no se puede acceder desde una dirección IP que no sea india. En la mayoría de los sitios de alojamiento gratuitos como Heroku, la IP india no es una opción. Entonces, la solución alternativa podría ser usar AWS, GCP, Azure con un servidor indio (aún no probado).

Referencia: https://github.com/cowinapi/developer.cowin/issues/228

over 4 years ago · Santiago Trujillo Relatório

0

No se trata de la solicitud de agente de usuario o formato. Enfrenté el mismo problema y pruebas adicionales demostraron que cloudFront está bloqueando la IP si varias solicitudes provienen de la misma IP consecutivamente. También se desbloquea después de un par de minutos. Básicamente, no quieren que estos alerten esto, probablemente esté sobrecargando su servidor.

over 4 years ago · Santiago Trujillo Relatório

0

Parece que la API no puede usarse fuera de la India. Intente combinar algún proxy indio/uso en el servidor indio

over 4 years ago · Santiago Trujillo Relatório

0

Ok, si quieres trabajar localmente, puedes usar

 let headers = { 'accept': 'application/json', 'Accept-Language': 'hi_IN', 'X-Requested-With': 'XMLHttpRequest', 'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.97 Safari/537.36', }

Ahora, si desea implementar en Heroku o Firebase, devolverá 403, creo que se debe principalmente a que están bloqueando cualquier IP fuera del servidor indio.

Enlace Github: https://github.com/manojkumar3692/reactjs_nodejs_cowin

Te mantendré informado aquí

over 4 years ago · Santiago Trujillo Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda