Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Trop souvent : Erreur 2: An error occurred while retrieving the data. #13

Open
coralie10 opened this issue Jan 13, 2014 · 16 comments
Open

Comments

@coralie10
Copy link

Bonjour,

Tout d'abord je vous remercie bcp pour votre appli !
J'ai bien la dernière version que j'utilise pour mon projet de fin cours.

Voilà mon problème : en local je n'ai aucun souci, j'ai passé mon site en ligne ( hébergement OVH) et les requêtes fonctionnent au petit bonheur la chance !
J'ai très très souvent l'erreur 2: An error occurred while retrieving the data. Exemple avec "the dark", "300", "trains".

J'ai bien enregistré mes fichiers en utf8, j'ai cru que c'était bon mais non ... si vous avez une idée ... surtout que en local (sous wamp) cela fonctionne parfaitement.

Merci par avance pour votre aide.
Coralie

@etn406
Copy link
Owner

etn406 commented Jan 25, 2014

Bonjour,
Désolé pour la réponse un peu tardive.
Je ne vais pas pouvoir beaucoup t'aider, si ton problème ne survient que sur l'hébergement. Il devrait tout de même être possible de se renseigner : j'ai rajouté une ligne de code qui affiche un message plus détaillé lors d'une erreur de ce type, il te suffit de mettre à jour le fichier api-allocine-helper.php sur ton serveur.

@draganshadow
Copy link
Contributor

Il y a une erreur de syntaxe sur la ligne ajoutée :)

@marboin
Copy link

marboin commented Feb 9, 2014

Il semblerait que certaines plages IP d'OVH soient bannies par Allociné (depuis peut-être 2-3 semaines, je n'avais pas utilisé mon script depuis un moment). Le serveur ne renvoie aucune erreur mais ne revoie rien. La seule solution que j'ai trouvé pour l'instant c'est de passer par un proxy pour faire la requête.

@lesurfeur
Copy link

Curieux car normalement avec l'api, à chaque requête sur allociné, une ip et un browser différent est envoyé.
Pour ma part que se soit en local ou sur un dédié cela fonctionne parfaitement.
Vérifies qu'a chaque requête tu as bien une ip différente de transmis ;)

@marboin
Copy link

marboin commented Mar 8, 2014

Pas de correction trouvée à ce jour, j'ai bien une IP/User-Agent différent à chaque fois. Je reçoit juste un HTTP/1.1 403 Forbidden et c'est tout. (tout fonctionne sur mon poste en local)
Je me suis rabattu sur TMDB en attendant, qui dispose d'une jolie base (mais malheureusement pas toujours en FR), et d'une API officielle =)

@lesurfeur
Copy link

Je ne sais pas quoi tu dires, je n'ai pas ce problème et ton script fonctionne en local, donc ce n'est pas l'API d'étienne qui est en cause.
Une requête mal effectuée peut être ou un blocage de ton hébergeur par allociné. As tu essayé sur un autre hébergeur ?
Tmdb est bien mais malheureusement il manque trop d'info sur les films, base moins importante et beaucoup de données erronées, je l'utilise également avec beaucoup de retouche à faire et des que je peux je met les infos à jour sur leur site.

@dadateite
Copy link

J'ai également ce problème, il se produit de façon assez aléatoire mais quand on déjà fait une grosse quantité d'appel à la fonction.

Pourtant j'héberge tout chez moi sur mon NAS.

@lesurfeur
Copy link

il y a peut être un nombre limité d'appel par ip par heure ou par jour effectué par allociné. Je n'ai pas testé par lot, ce qui voudrait dire avec le même appel et donc ip. Car en appel unique pour chaque film (donc l'ip change à chaque fois) je n'ai pas de problème pour le moment.

@marboin
Copy link

marboin commented Jul 23, 2014

Après analyse, il y a (apparament) une nouvelle clé secrète pour signer les appels (et aussi une nouvelle methode de signature). Je vous met le ZIP des fichiers concernés :
http://s000.tinyupload.com/index.php?file_id=80051159646445188755

Et la totale :
http://s000.tinyupload.com/index.php?file_id=08957661746762957232

BuildConfig.java contient la config de base
AllocineApplication.java instancie init() de BuildConfigData
BuildConfigData.java met la conf dans les bonnes variables

la classe finalizeUrl de AlloCineClient.java est celle qui nous intéresse, la ou les appels sont signés
La signature est dans str5.

protected String finalizeUrl(String paramString1, String paramString2)
{
  if (paramString2 == null) {}
  int i;
  do
  {
    return paramString2;
    i = 1 + paramString2.indexOf("?");
  } while (i <= 0);
  String str1 = paramString2.substring(0, i);
  String str2 = paramString2.substring(i);
  String str3 = "&sed=" + sigDateFormat.format(new Date());
  Object localObject = str2 + str3;
  String str4 = paramString1 + (String)localObject + this.key;
  try
  {
    MessageDigest localMessageDigest = MessageDigest.getInstance("SHA-1");
    localMessageDigest.reset();
    localMessageDigest.update(str4.getBytes("iso-8859-1"), 0, str4.length());
    String str5 = URLEncoder.encode(new String(CustomBase64.encode(localMessageDigest.digest(), 0)), "utf-8");
    if (str5.endsWith("%0A")) {
      str5 = str5.substring(0, -3 + str5.length());
    }
    if (str5.length() > 48) {
      str5 = str5.substring(0, 48);
    }
    String str6 = (String)localObject + "&sig=" + str5;
    localObject = str6;
  }
  return str1 + (String)localObject;
}

Si il y a des fous de Java, j'ai trouvé les infos, mais pas encore réussi à faire fonctionner la classe avec la nouvelle méthode.

@phonegapps
Copy link

Il y a aussi le CustomBase64 où il faudrait traduire la méthode encode qui est bien grosse...

Quoique je ne sais pas si c'est le décompileur qui fait ça, mais finalizeUrl a l'air d'uniquement retourner paramString2 ? Y a une autre finalizeUrl dans VolleyClient.java qui elle retourne en effet directement paramString2...

@phonegapps
Copy link

Un peu imbitable le code. Ca a dû être "obfusqué". Le pire est la partie avec le CustomBase64.
@marboin quel décompileur as-tu utilisé ? Peut-être qu'avec un deobfuscateur comme https://github.com/Storyyeller/Krakatau le résultat sera plus lisible.

@gdoise
Copy link

gdoise commented Mar 31, 2020

Je relance peut être le sujet (non résolu n'est-il pas ?):
Bonjour à tous et bonjour Etienne Gauvin,
Je travail pour un petit ciné municipal depuis 25 ans, et programmer est mon passe temps.
Ainsi, j'ai développé énormément de choses en vb puis en javascript au sein des google sheet pour exploiter les info d'allociné.
En passant par les APIs aussi bien qu'en travaillant sur les pages web d'allociné en utilisant des tas de stratagèmes :)
J'ai découvert , il y a quelques mois, ton formidable projet api-allocine-helper (adaptation du du projet https://pypi.org/project/allocine si mes souvenirs sont exacts ? ) mais c'est seulement depuis hier que je me suis mis à le tester. Je n'avais plsu fait de php depuis bien 5 ans voir plus. Ca va ça revient mais avec les objets je tatonne , va falloir que je planche sur les cours....

Bref, ce mardi 31/03/2020 j'ai su installer et utiliser api-allocine-helper en local. Youpii !
Pour mes essais sur free.fr j'ai eu quelques déboires

  • Parvenir à faire passer mon site sur php 5.6.1 avec le .htacces qui va bien
  • Puis j'avais une erreur pour la ligne 780 du fichier AlloHelper.class.php que j'ai donc modifié:
    if (class_exists(AlloData)) // code d'origine: if (class_exists(AlloData::class))
  • Enfin, il me reste un problème non résolu (de time out ) :
    Erreur n°2: An cURL error occurred while retrieving the data: connect() timed out!.

J'ai cherché bien sur ici et ailleurs après une réponse mais je n'ai trouvé que ceci:
The extension php_curl must be installed with PHP or function file_get_contents must be enabled
Hors j'ai bien dans phpinfo: CURL support enabled
CURL Information libcurl/7.26.0 OpenSSL/1.0.1t zlib/1.2.7 libidn/1.25 libssh2/1.4.2 librtmp/2.3

Peut être saurez-vous m'éclairer. Je partagerai volontiers avec vous sur mes projets dont je te parlais.
Ce n'est pas à tout les coins de rues qu'on croise quelqu'un qui fait du code et encore moins sur un même but ;)

Amicalement et en confinement ,
Guillaume DOISE
J'ai 49 ans, j'habite Bailleul , dans le Nord 59270

@etn406
Copy link
Owner

etn406 commented Jun 18, 2020

Bonjour Guillaume, et désolé de ne pas t'avoir répondu avant, je passe rarement sur GitHub ces dernières années et au moment où j'avais vu ton mail, je ne pouvais pas répondre, et j'ai ensuite oublié.

Si tu arrives à te connecter à l'API et récupérer des données en local mais pas sur ton hébergement free.fr, alors le problème vient surtout de l'hébergement. Peut-être qu'il n'est pas permis d'accéder à des sites externes sur celui-ci ? Il faudrait tenter de récupérer le contenu d'une page (par exemple directement l'accueil de www.google.fr) avec cURL ou file_get_contents... Si tu peux le faire en local mais pas sur ton hébergement, alors c'est bien l'hébergement le problème :(

@gdoise
Copy link

gdoise commented Jun 18, 2020 via email

@gdoise
Copy link

gdoise commented Jul 1, 2020 via email

@etn406
Copy link
Owner

etn406 commented Jul 1, 2020

Bonjour Guillaume, en effet ça sent le roussi pour ton IP, le code HTTP 403 signifie probablement que ton accès a été bloqué par Allociné... Tu peux passer par un VPN ou une autre connexion internet, je ne vois que ça ! Et ça n'empêchera pas l'IP suivant d'être bloqué aussi, si ils te repèrent.

(L'erreur suivante "Error 3: An JSON error (4) occurred when converting data: Syntax error" n'est qu'une conséquence de l'erreur 403)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

8 participants